summaryrefslogtreecommitdiff
path: root/aarch64_small
diff options
context:
space:
mode:
Diffstat (limited to 'aarch64_small')
-rw-r--r--aarch64_small/Makefile56
-rw-r--r--aarch64_small/aarch64_regfp.sail599
-rw-r--r--aarch64_small/armV8.h.sail196
-rw-r--r--aarch64_small/armV8.lem6925
-rw-r--r--aarch64_small/armV8.ml6926
-rw-r--r--aarch64_small/armV8.sail2457
-rw-r--r--aarch64_small/armV8_A32_sys_regs.sail61
-rw-r--r--aarch64_small/armV8_A64_lib.sail945
-rw-r--r--aarch64_small/armV8_A64_special_purpose_regs.sail102
-rw-r--r--aarch64_small/armV8_A64_sys_regs.sail292
-rw-r--r--aarch64_small/armV8_common_lib.sail1037
-rw-r--r--aarch64_small/armV8_embed.lem5561
-rw-r--r--aarch64_small/armV8_embed_sequential.lem5561
-rw-r--r--aarch64_small/armV8_embed_types.lem659
-rw-r--r--aarch64_small/armV8_extras.lem77
-rw-r--r--aarch64_small/armV8_extras_embed.lem59
-rw-r--r--aarch64_small/armV8_extras_embed_sequential.lem59
-rw-r--r--aarch64_small/armV8_lib.h.sail233
-rw-r--r--aarch64_small/armV8_pstate.sail127
-rw-r--r--aarch64_small/armV8_toFromInterp.lem702
-rw-r--r--aarch64_small/gen/ast.hgen44
-rw-r--r--aarch64_small/gen/fold.hgen44
-rw-r--r--aarch64_small/gen/herdtools_ast_to_shallow_ast.hgen335
-rw-r--r--aarch64_small/gen/herdtools_types_to_shallow_types.hgen153
-rw-r--r--aarch64_small/gen/lexer.hgen309
-rw-r--r--aarch64_small/gen/map.hgen44
-rw-r--r--aarch64_small/gen/parser.hgen1403
-rw-r--r--aarch64_small/gen/pretty.hgen393
-rw-r--r--aarch64_small/gen/regs_out_in.hgen155
-rw-r--r--aarch64_small/gen/sail_trans_out.hgen326
-rw-r--r--aarch64_small/gen/shallow_ast_to_herdtools_ast.hgen326
-rw-r--r--aarch64_small/gen/shallow_types_to_herdtools_types.hgen154
-rw-r--r--aarch64_small/gen/token_types.hgen85
-rw-r--r--aarch64_small/gen/tokens.hgen78
-rw-r--r--aarch64_small/gen/trans_sail.hgen379
-rw-r--r--aarch64_small/gen/types.hgen90
-rw-r--r--aarch64_small/gen/types_sail_trans_out.hgen189
-rw-r--r--aarch64_small/gen/types_trans_sail.hgen119
-rw-r--r--aarch64_small/prelude.sail36
39 files changed, 37296 insertions, 0 deletions
diff --git a/aarch64_small/Makefile b/aarch64_small/Makefile
new file mode 100644
index 00000000..f72fe007
--- /dev/null
+++ b/aarch64_small/Makefile
@@ -0,0 +1,56 @@
+SAIL:=../src/sail.native
+LEM:=../../lem/lem
+
+default: armV8_embed.lem
+
+# the order of the files is important
+SOURCES=prelude.sail\
+ armV8.h.sail\
+ armV8_A64_sys_regs.sail\
+ armV8_A64_special_purpose_regs.sail\
+ armV8_A32_sys_regs.sail\
+ armV8_pstate.sail\
+ armV8_lib.h.sail\
+ armV8_common_lib.sail\
+ armV8_A64_lib.sail\
+ armV8.sail
+
+all: armV8.lem armV8.ml armV8_embed.lem
+
+armV8.lem: $(SOURCES)
+ $(SAIL) -lem_ast -o armV8 $(SOURCES)
+
+armV8.ml: armV8.lem ../src/lem_interp/interp_ast.lem
+ $(LEM) -ocaml -lib ../src/lem_interp/ $<
+
+
+armV8_embed.lem: $(SOURCES) ../etc/regfp2.sail aarch64_regfp.sail
+# also generates armV8_embed_sequential.lem, armV8_embed_types.lem, armV8_toFromInterp.lem
+ $(SAIL) -lem -lem_lib ArmV8_extras_embed -o armV8 $^
+
+clean:
+ rm -f armV8.lem armV8.ml
+ rm -f armV8_embed*.lem armV8_toFromInterp.lem
+
+######################################################################
+ETCDIR=../etc
+
+apply_header:
+ headache -c $(ETCDIR)/headache_config -h $(ETCDIR)/arm_header *.sail
+
+.PHONY: apply_header
+
+######################################################################
+IDLARM=../../rsem/idlarm
+
+pull_from_idlarm:
+ $(MAKE) -C $(IDLARM) clean
+ $(MAKE) -C $(IDLARM) san_sail
+ rm -f *.sail
+ cp -a $(IDLARM)/build/*.sail ./
+ cp -a $(IDLARM)/armV8_extras_embed.lem ./
+ cp -a $(IDLARM)/armV8_extras_embed_sequential.lem ./
+ cp -a $(IDLARM)/armV8_extras.lem ./
+ mkdir -p gen
+ cp -a $(IDLARM)/*.hgen gen/
+ $(MAKE) apply_header
diff --git a/aarch64_small/aarch64_regfp.sail b/aarch64_small/aarch64_regfp.sail
new file mode 100644
index 00000000..0bb79f8f
--- /dev/null
+++ b/aarch64_small/aarch64_regfp.sail
@@ -0,0 +1,599 @@
+/*========================================================================*/
+/* */
+/* Copyright (c) 2015-2017 Shaked Flur */
+/* Copyright (c) 2015-2017 Kathyrn Gray */
+/* All rights reserved. */
+/* */
+/* This software was developed by the University of Cambridge Computer */
+/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */
+/* (REMS) project, funded by EPSRC grant EP/K008528/1. */
+/* */
+/* 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. */
+/*========================================================================*/
+
+val rmem_kind : (AccType, bool) -> instruction_kind
+function rmem_kind (acctype, exclusive) =
+ if exclusive then
+ match acctype {
+ AccType_ATOMIC => IK_mem_read(Read_exclusive),
+ AccType_ORDERED => IK_mem_read(Read_exclusive_acquire),
+ _ => { not_implemented("unimplemented memory access");
+ IK_mem_read(Read_exclusive); }
+ }
+ else
+ match acctype {
+ AccType_NORMAL => IK_mem_read(Read_plain),
+ AccType_ATOMIC => IK_mem_read(Read_plain),
+ AccType_STREAM => IK_mem_read(Read_stream),
+ AccType_UNPRIV => IK_mem_read(Read_plain),
+ AccType_ORDERED => IK_mem_read(Read_acquire)
+ }
+
+
+function instruction_kind wmem_kind (acctype : (AccType), exclusive : (bool)) =
+ if exclusive then {
+ match acctype {
+ AccType_ATOMIC => IK_mem_write(Write_exclusive),
+ AccType_ORDERED => IK_mem_write(Write_exclusive_release),
+ _ => { not_implemented("unimplemented memory access");
+ IK_mem_write(Write_exclusive); }
+ }
+ } else {
+ match acctype {
+ AccType_NORMAL => IK_mem_write(Write_plain),
+ AccType_STREAM => IK_mem_write(Write_plain),
+ AccType_UNPRIV => IK_mem_write(Write_plain),
+ AccType_ORDERED => IK_mem_write(Write_release),
+ _ => { not_implemented("unimplemented memory access");
+ IK_mem_write(Write_plain) }
+ };
+ }
+
+
+let _Rs : vector(31,dec,string) =
+ ["R30","R29","R28","R27","R26","R25","R24","R23","R22","R21",
+ "R20","R19","R18","R17","R16","R15","R14","R13","R12","R11",
+ "R10","R9" ,"R8" ,"R7" ,"R6" ,"R5" ,"R4" ,"R3" ,"R2" ,"R1" ,
+ "R0"]
+
+let TxNestingLevelfp = RFull("TxNestingLevel")
+let TXIDR_EL0_DEPTHfp = RField("TXIDR_EL0","DEPTH")
+
+let PSTATE_Nfp = RField("NZCV","N")
+let PSTATE_Zfp = RField("NZCV","Z")
+let PSTATE_Cfp = RField("NZCV","C")
+let PSTATE_Vfp = RField("NZCV","V")
+let PSTATE_Dfp = RField("DAIF","D")
+let PSTATE_Afp = RField("DAIF","A")
+let PSTATE_Ifp = RField("DAIF","I")
+let PSTATE_Ffp = RField("DAIF","F")
+let PSTATE_ELfp = RFull("CurrentEL")
+let PSTATE_SPfp = RField("SPSel","SP")
+let _PCfp = RFull("_PC")
+
+let NZCVfp = [| PSTATE_Nfp, PSTATE_Zfp, PSTATE_Cfp, PSTATE_Vfp |]
+
+function regfps xFP(n : (reg_index)) =
+ if n != 31 then [|RFull(_Rs[n])|] else [| |]
+
+
+/* check if this is still what we want */
+function BranchToFP forall 'N, 'N in {32,64}. (iR,oR) -> (regfps,regfps) =
+ (if UsingAArch32() then iR else PSTATE_ELfp :: iR, _PCfp :: oR)
+
+function regfps ConditionHoldsIFP(_cond : (bits(4))) =
+ match _cond[3..1] {
+ 0b000 => [| PSTATE_Zfp |],
+ 0b001 => [| PSTATE_Cfp |],
+ 0b010 => [| PSTATE_Nfp |],
+ 0b011 => [| PSTATE_Vfp |],
+ 0b100 => [| PSTATE_Cfp, PSTATE_Zfp |],
+ 0b101 => [| PSTATE_Nfp, PSTATE_Vfp |],
+ 0b110 => [| PSTATE_Nfp, PSTATE_Vfp, PSTATE_Zfp |],
+ 0b111 => [| |]
+ }
+
+/* for iR if rSPFP, for oR if wSPFP */
+let rSPIFP =
+ /* TODO: actually this depends on runtime data: PSTATE_SP and PSTATE_EL */
+ [| PSTATE_SPfp, RFull("SP_EL0") |]
+
+let wSPFP =
+ /* TODO: actually this depends on runtime data: PSTATE_SP and PSTATE_EL */
+ ([| PSTATE_SPfp |],
+ [| RFull("SP_EL0") |])
+
+
+let CheckSPAlignmentIFP = PSTATE_ELfp :: rSPIFP
+
+let BigEndianIFP =
+ if UsingAArch32() then [| RFull("PSTATE_E") |] else [| PSTATE_ELfp |]
+
+let wMem'IFP = BigEndianIFP
+let wMemIFP = wMem'IFP
+
+function initial_analysis (instr) -> (regfps,regfps,regfps,niafps,diafp,instruction_kind) = {
+ iR = [| |];
+ oR = [| |];
+ aR = [| |];
+ Nias = [| NIAFP_successor |];
+ Dia = DIAFP_none;
+ ik = IK_simple;
+
+ match instr {
+ (TMStart(t)) => {
+ iR = TxNestingLevelfp :: TXIDR_EL0_DEPTHfp :: iR;
+ /* TODO: whether the following applies depends on runtime data:
+ ~(TxNestingLevel >= TXIDR_EL0.DEPTH) */
+ oR = TxNestingLevelfp :: append(oR,xFP(t));
+ ik = IK_trans(Transaction_start);
+ },
+ (TMCommit) => {
+ iR = TxNestingLevelfp :: iR;
+ oR = TxNestingLevelfp :: oR;
+ ik = IK_trans(Transaction_commit);
+ },
+ (TMAbort(retry,reason)) => {
+ iR = TxNestingLevelfp :: iR;
+ ik = IK_trans(Transaction_abort);
+ },
+ (TMTest) => {
+ iR = TxNestingLevelfp :: iR;
+ oR = RFull("NZCV") :: oR;
+ },
+ (CompareAndBranch(t,datasize,iszero,offset)) => {
+ iR = append(iR,xFP(t));
+ /* TODO: whether the following applies depends on runtime data:
+ IsZero(operand1) */
+ let (i,o) = BranchToFP(iR,oR) in {iR = i; oR = o};
+ nia' : (bits(64)) = rPC() + offset;
+ Nias = [| NIAFP_successor, NIAFP_concrete_address(nia') |];
+ ik = IK_branch;
+ },
+ (BranchConditional(offset,condition)) => {
+ iR = append(iR,ConditionHoldsIFP(condition));
+ /* TODO: whether the following applies depends on runtime data:
+ ConditionHolds(condition) */
+ let (i,o) = BranchToFP(iR,oR) in {iR = i; oR = o};
+ Nias = [| NIAFP_successor, NIAFP_concrete_address(rPC() + offset) |];
+ ik = IK_branch;
+ },
+ (GenerateExceptionEL1(imm)) => not_implemented("GenerateExceptionEL1"),
+ (GenerateExceptionEL2(imm)) => not_implemented("GenerateExceptionEL2"),
+ (GenerateExceptionEL3(imm)) => not_implemented("GenerateExceptionEL3"),
+ (DebugBreakpoint(comment)) => not_implemented("DebugBreakpoint"),
+ (ExternalDebugBreakpoint) => not_implemented("ExternalDebugBreakpoint"),
+ (DebugSwitchToExceptionLevel(target_level)) => not_implemented("DebugSwitchToExceptionLevel"),
+ (MoveSystemImmediate(operand,field)) =>
+ match field {
+ PSTATEField_SP => oR = PSTATE_SPfp :: oR,
+ PSTATEField_DAIFSet => {
+ iR = append(iR, [| PSTATE_Dfp, PSTATE_Afp, PSTATE_Ifp, PSTATE_Ffp |]);
+ oR = append(oR, [| PSTATE_Dfp, PSTATE_Afp, PSTATE_Ifp, PSTATE_Ffp |]);
+ },
+ PSTATEField_DAIFClr => {
+ iR = append(iR, [| PSTATE_Dfp, PSTATE_Afp, PSTATE_Ifp, PSTATE_Ffp |]);
+ oR = append(oR, [| PSTATE_Dfp, PSTATE_Afp, PSTATE_Ifp, PSTATE_Ffp |]);
+ }
+ },
+ (Hint(op)) =>
+ match op {
+ SystemHintOp_YIELD => (),
+ SystemHintOp_WFE => {
+ if EventRegistered() then () /* ClearEventRegister */
+ else {
+ /* the execute code for this case always fails because of
+ WaitForEvent, declared as extern but not defined */
+ not_implemented("Hint(SystemHintOp_WFE);")
+ }
+ },
+ SystemHintOp_WFI => {
+ /* the execute code for this case always fails because of
+ InterruptPending, declared as extern but not defined */
+ not_implemented("Hint(SystemHintOp_WFI);")
+ },
+ SystemHintOp_SEV => (), /*SendEvent*/
+ SystemHintOp_SEVL =>
+ /* the execute code for this case always fails because of
+ EventRegisterSet, declared as extern but not defined */
+ not_implemented("Hint(SystemHintOp_SEVL);"),
+ _ => () /* do nothing */
+ },
+ (ClearExclusiveMonitor(imm)) => (), /*ClearExclusiveLocal*/
+ (Barrier(op,domain,types)) => {
+ ik = match op {
+ MemBarrierOp_DSB =>
+ match types {
+ MBReqTypes_Reads => IK_barrier(Barrier_DSB_LD),
+ MBReqTypes_Writes => IK_barrier(Barrier_DSB_ST),
+ MBReqTypes_All => IK_barrier(Barrier_DSB)
+ },
+ MemBarrierOp_DMB =>
+ match types {
+ MBReqTypes_Reads => IK_barrier(Barrier_DMB_LD),
+ MBReqTypes_Writes => IK_barrier(Barrier_DMB_ST),
+ MBReqTypes_All => IK_barrier(Barrier_DMB)
+ },
+ MemBarrierOp_ISB =>
+ IK_barrier(Barrier_ISB)
+ };
+ },
+ (System(t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result)) => {
+ oR = append(oR,xFP(t));
+ not_implemented("System"); /* because SysOp_R and SysOp_W */
+ },
+ (MoveSystemRegister(t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read)) => {
+ if read then {
+ oR = append(oR,xFP(t));
+ match (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2) { /* System_Get */
+ (3,3,4,2,0) => iR = RFull("NZCV") :: iR,
+ (3,3,4,2,1) => iR = RFull("DAIF") :: iR,
+ (3, 3, 13, 0, 2) => iR = RFull("TPIDR_EL0") :: iR
+ /* TODO FIXME: higher EL TPIDRs */
+ }
+ }
+ else {
+ iR = append(iR,xFP(t));
+ match (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2) { /* System_Put */
+ (3,3,4,2,0) => oR = RFull("NZCV") :: oR,
+ (3,3,4,2,1) => oR = RFull("DAIF") :: oR,
+ (3, 3, 13, 0, 2) => oR = RFull("TPIDR_EL0") :: oR
+ /* TODO FIXME: higher EL TPIDRs */
+ }
+ }
+ },
+ (ImplementationDefinedTestBeginEnd(isEnd)) => (),
+ (ImplementationDefinedStopFetching) => (),
+ (ImplementationDefinedThreadStart) => (),
+ (TestBitAndBranch(t,datasize,bit_pos,bit_val,offset)) => {
+ iR = append(xFP(t),iR);
+ /* TODO: whether the following applies depends on runtime data:
+ operand[bit_pos] == bit_val */
+ let (i,o) = BranchToFP(iR,oR) in {iR = i; oR = o};
+ Nias = [| NIAFP_successor, NIAFP_concrete_address(rPC() + offset) |];
+ ik = IK_branch;
+ },
+ (BranchImmediate(branch_type,offset)) => {
+ if branch_type == BranchType_CALL
+ then {iR = _PCfp :: iR; oR = append(xFP(30),oR)};
+ let (i,o) = BranchToFP(iR,oR) in {iR = i; oR = o};
+ Nias = [| NIAFP_concrete_address(rPC() + offset) |];
+ ik = IK_branch
+ },
+ (BranchRegister(n,branch_type)) => {
+ iR = append(iR,xFP(n));
+ if branch_type == BranchType_CALL
+ then {iR = _PCfp :: iR; oR = append(xFP(30),oR)};
+ let (i,o) = BranchToFP(iR,oR) in {iR = i; oR = o};
+ Nias = if n ==31
+ then [| NIAFP_concrete_address(0) |]
+ else [| NIAFP_indirect_address |];
+ ik = IK_branch
+ },
+ (ExceptionReturn) => not_implemented("ExceptionReturn"),
+ (DebugRestorePState) => not_implemented("DebugRestorePState"),
+ (LoadLiteral(t,memop,_signed,size,offset,datasize)) => {
+ /* assuming rMem doesn't touch other registers */
+ iR = _PCfp :: iR;
+ oR = append(xFP(t),oR);
+ aR = _PCfp :: aR;
+ match memop {
+ MemOp_LOAD => ik = IK_mem_read(Read_plain),
+ MemOp_PREFETCH => {ik = IK_simple; aR = [| |]}
+ }
+ },
+ (LoadStoreAcqExc(n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize)) => {
+ rt_unknown : (boolean) = false;
+ rn_unknown : (boolean) = false;
+ if n==31 then {
+ iR = append(CheckSPAlignmentIFP,iR);
+ iR = append(rSPIFP,iR);
+ aR = append(rSPIFP,aR);
+ }
+ else if rn_unknown then ()
+ else {
+ iR = append(xFP(n),iR);
+ aR = append(xFP(n),aR);
+ };
+ match memop {
+ MemOp_STORE => {
+ if rt_unknown then ()
+ else if pair then iR = append(xFP(t),append(xFP(t2),iR))
+ else iR = append(xFP(t),iR);
+ if excl then {
+ /* TODO: the command below depends on runtime data:
+ AArch64_ExclusiveMonitorsPass(address, dbytes) */
+ iR = append(iR,wMemIFP);
+ oR = append(xFP(s),oR);
+ ik = wmem_kind(acctype,true);
+ }
+ else {
+ iR = append(iR,wMemIFP);
+ ik = wmem_kind(acctype,false);
+ }
+ },
+ MemOp_LOAD => {
+ if pair then {
+ if rt_unknown then
+ oR = append(xFP(t),oR)
+ else if elsize == 32 then {
+ iR = append(iR,BigEndianIFP);
+ oR = append(xFP(t),append(xFP(t2),oR));
+ }
+ else {
+ oR = append(xFP(t),append(xFP(t2),oR))
+ };
+ ik = rmem_kind(acctype,true);
+ }
+ else {
+ oR = append(xFP(t),oR);
+ ik = rmem_kind(acctype,excl);
+ }
+
+ },
+ MemOp_PREFETCH => aR = [| |]
+ }
+ },
+ (LoadStorePairNonTemp(wback,postindex,n,t,t2,acctype,memop,scale,datasize,offset)) => {
+ rt_unknown : (boolean) = false;
+ if n == 31 then {
+ iR = append(CheckSPAlignmentIFP,iR);
+ iR = append(rSPIFP,iR);
+ aR = append(rSPIFP,aR);
+ }
+ else {
+ iR = append(xFP(n),iR);
+ aR = append(xFP(n),aR);
+ };
+ if wback then {
+ if n == 31 then
+ let (i,o) = wSPFP in {
+ iR = append(i,iR);
+ oR = append(o,oR);
+ }
+ else
+ oR = append(xFP(n),oR);
+ };
+ match memop {
+ MemOp_STORE => {
+ if rt_unknown & t == n then ()
+ else iR = append(xFP(t),iR);
+ if rt_unknown & t2 == n then ()
+ else iR = append(xFP(t2),iR);
+ iR = append(wMemIFP,iR);
+ ik = wmem_kind(acctype,false);
+ },
+ MemOp_LOAD => {
+ oR = append(xFP(t),append(xFP(t2),oR));
+ ik = rmem_kind(acctype,false);
+ }
+ }
+ },
+ (LoadImmediate(n,t,acctype,memop,_signed,wback,postindex,offset,regsize,datasize)) => {
+ wb_unknown : (boolean) = false;
+ rt_unknown : (boolean) = false;
+ if n == 31 then {
+ iR = append(CheckSPAlignmentIFP,iR);
+ iR = append(rSPIFP,iR);
+ aR = append(rSPIFP,aR);
+ }
+ else {
+ iR = append(xFP(n),iR);
+ aR = append(xFP(n),aR);
+ };
+ if wback then {
+ if n == 31 then
+ let (i,o) = wSPFP in {iR = append(i,iR); oR = append(o,oR)}
+ else oR = append(xFP(n),oR);
+ };
+ match memop {
+ MemOp_STORE => {
+ if rt_unknown then ()
+ else iR = append(xFP(t),iR);
+ iR = append(wMemIFP,iR);
+ ik = wmem_kind(acctype,false);
+ },
+ MemOp_LOAD => {
+ oR = append(xFP(t),oR);
+ ik = rmem_kind(acctype,false);
+ },
+ MemOp_PREFETCH => aR = [| |]
+ }
+ },
+ (LoadRegister(n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize)) => {
+ iR = append(xFP(m),iR);
+ aR = append(xFP(m),aR);
+ wb_unknown : (boolean) = false;
+ rt_unknown : (boolean) = false;
+ if n == 31 then {
+ iR = append(CheckSPAlignmentIFP,iR);
+ iR = append(rSPIFP,iR);
+ aR = append(rSPIFP,aR);
+ }
+ else {
+ iR = append(xFP(n),iR);
+ aR = append(xFP(n),aR);
+ };
+ if wback then {
+ if n == 31 then let (i,o) = wSPFP in {iR = append(i,iR); oR = append(o,oR)}
+ else oR = append(xFP(n),oR);
+ };
+ match memop {
+ MemOp_STORE => {
+ if rt_unknown then ()
+ else iR = append(xFP(t),iR);
+ iR = append(wMemIFP,iR);
+ ik = wmem_kind(acctype,false);
+ },
+ MemOp_LOAD => {
+ oR = append(xFP(t),oR);
+ ik = rmem_kind(acctype,false);
+ },
+ MemOp_PREFETCH => aR = [| |]
+ }
+ },
+ (LoadStorePair(wback,postindex,n,t,t2,acctype,memop,_signed,datasize,offset)) => {
+ rt_unknown : (boolean) = false;
+ wb_unknown : (boolean) = false;
+ if n == 31 then {
+ iR = append(CheckSPAlignmentIFP,iR);
+ iR = append(rSPIFP,iR);
+ aR = append(rSPIFP,aR);
+ }
+ else {
+ iR = append(xFP(n),iR);
+ aR = append(xFP(n),aR);
+ };
+ if wback then {
+ if n == 31 then let (i,o) = wSPFP in {iR = append(i,iR); oR = append(o,oR)}
+ else oR = append(xFP(n),oR);
+ };
+ match memop {
+ MemOp_STORE => {
+ if rt_unknown & t == n then ()
+ else iR = append(xFP(t),iR);
+ if rt_unknown & t2 == n then ()
+ else iR = append(xFP(t2),iR);
+ iR = append(wMemIFP,iR);
+ ik = wmem_kind(acctype,false);
+ },
+ MemOp_LOAD => {
+ oR = append(xFP(t),oR);
+ oR = append(xFP(t2),oR);
+ ik = rmem_kind(acctype,false);
+ }
+ }
+ },
+ (AddSubImmediate(d,n,datasize,sub_op,setflags,imm)) => {
+ iR = append(if n == 31 then rSPIFP else xFP(n),iR);
+ if setflags then oR = append(NZCVfp,oR);
+ if d ==31 & ~(setflags) then
+ let (i,o) = wSPFP in
+ { iR = append(i,iR);
+ oR = append(o,oR) }
+ else oR = append(xFP(d),oR)
+ },
+ (BitfieldMove(d,n,datasize,inzero,extend,R,S,wmask,tmask)) => {
+ if inzero then () else iR= append(xFP(d),iR);
+ iR = append(xFP(n),iR);
+ oR = append(xFP(d),oR);
+ },
+ (ExtractRegister(d,n,m,datasize,lsb)) => {
+ iR = append(xFP(n),append(xFP(m),iR));
+ oR = append(xFP(d),oR);
+ },
+ (LogicalImmediate(d,n,datasize,setflags,op,imm)) => {
+ iR = append(xFP(n),iR);
+ if setflags then oR = append(NZCVfp,oR);
+ if d ==31 & ~(setflags) then let (i,o) = wSPFP in
+ { iR = append(i,iR); oR = append(o,oR) }
+ else oR = append(xFP(d),oR)
+ },
+ (MoveWide(d,datasize,imm,pos,opcode)) => {
+ if opcode == MoveWideOp_K then iR = append(xFP(d),iR);
+ oR = append(xFP(d),oR);
+ },
+ (Address(d,page,imm)) => {
+ iR = _PCfp :: iR;
+ oR = append(xFP(d),oR);
+ },
+ (AddSubExtendRegister(d,n,m,datasize,sub_op,setflags,extend_type,shift)) => {
+ iR = append(if n == 31 then rSPIFP else xFP(n),iR);
+ iR = append(xFP(m),iR);
+ if setflags then oR = append(NZCVfp,oR);
+ if d ==31 & ~(setflags) then let (i,o) = wSPFP in
+ { iR = append(i,iR); oR = append(o,oR) }
+ else oR = append(xFP(d),oR)
+ },
+ (AddSubShiftedRegister(d,n,m,datasize,sub_op,setflags,shift_type,shift_amount)) => {
+ iR = append(xFP(n),append(xFP(m),iR));
+ if setflags then oR = append(NZCVfp,oR);
+ oR = append(xFP(d),oR);
+ },
+ (AddSubCarry(d,n,m,datasize,sub_op,setflags)) => {
+ iR = append(xFP(n),append(xFP(m),iR));
+ iR = PSTATE_Cfp :: iR;
+ if setflags then oR = append(NZCVfp,oR);
+ oR = append(xFP(d),oR);
+ },
+ (ConditionalCompareImmediate(n,datasize,sub_op,condition,flags,imm)) => {
+ iR = append(xFP(n),iR);
+ iR = append(ConditionHoldsIFP(condition),iR);
+ oR = append(NZCVfp,oR);
+ },
+ (ConditionalCompareRegister(n,m,datasize,sub_op,condition,flags)) => {
+ iR = append(xFP(n),append(xFP(m),iR));
+ iR = append(ConditionHoldsIFP(condition),iR);
+ oR = append(NZCVfp,oR);
+ },
+ (ConditionalSelect(d,n,m,datasize,condition,else_inv,else_inc)) => {
+ iR = append(xFP(n),append(xFP(m),iR));
+ iR = append(ConditionHoldsIFP(condition),iR);
+ oR = append(xFP(d),oR);
+ },
+ (Reverse(d,n,datasize,op)) => {
+ iR = append(xFP(n),iR);
+ oR = append(xFP(d),oR);
+ },
+ (CountLeading(d,n,datasize,opcode)) => {
+ iR = append(xFP(n),iR);
+ oR = append(xFP(d),oR);
+ },
+ (Division(d,n,m,datasize,_unsigned)) => {
+ iR = append(xFP(n),append(xFP(m),iR));
+ oR = append(xFP(d),oR);
+ },
+ (Shift(d,n,m,datasize,shift_type)) => {
+ iR = append(xFP(m),iR);
+ iR = append(xFP(n),iR);
+ oR = append(xFP(d),oR);
+ },
+ (CRC(d,n,m,size,crc32c)) => {
+ iR = append(xFP(n),append(xFP(m),iR));
+ oR = append(xFP(d),oR);
+ },
+ (MultiplyAddSub(d,n,m,a,destsize,datasize,sub_op)) => {
+ iR = append(xFP(n),iR);
+ iR = append(xFP(m),iR);
+ iR = append(xFP(a),iR);
+ oR = append(xFP(d),oR);
+ },
+ (MultiplyAddSubLong(d,n,m,a,destsize,datasize,sub_op,_unsigned)) => {
+ iR = append(xFP(n),iR);
+ iR = append(xFP(m),iR);
+ iR = append(xFP(a),iR);
+ oR = append(xFP(d),oR);
+ },
+ (MultiplyHigh(d,n,m,a,destsize,datasize,_unsigned)) => {
+ iR = append(xFP(n),append(xFP(m),iR));
+ oR = append(xFP(d),oR);
+ },
+ (LogicalShiftedRegister(d,n,m,datasize,setflags,op,shift_type,shift_amount,invert)) => {
+ iR = append(xFP(n),append(xFP(m),iR));
+ if setflags then oR = append(NZCVfp,oR);
+ oR = append(xFP(d),oR);
+ }
+ };
+ (iR,oR,aR,Nias,Dia,ik)
+}
diff --git a/aarch64_small/armV8.h.sail b/aarch64_small/armV8.h.sail
new file mode 100644
index 00000000..f5c5aa1e
--- /dev/null
+++ b/aarch64_small/armV8.h.sail
@@ -0,0 +1,196 @@
+/*========================================================================*/
+/* */
+/* Copyright (c) 2015-2017 Shaked Flur */
+/* Copyright (c) 2015-2017 Kathyrn Gray */
+/* All rights reserved. */
+/* */
+/* This software was developed by the University of Cambridge Computer */
+/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */
+/* (REMS) project, funded by EPSRC grant EP/K008528/1. */
+/* */
+/* 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. */
+/*========================================================================*/
+
+default Order dec
+
+type boolean = bit
+type integer = int
+type uinteger = nat /* ARM ARM does not have nat/uint type */
+type reg_size = bits(5)
+type reg_index = range(0,31)
+type SIMD_index = range(0,31)
+
+register _PC : bits(64)
+
+/* transactional memory registers */
+register TxNestingLevel : bits(8) /* same size as TXIDR_EL0.DEPTH */
+
+bitfield TMSTATUS_type : bits(64) =
+{
+ /*RES0 : 63..17,*/
+ IMP : 16,
+ DBG : 15,
+ MEM : 14,
+ ERR : 13,
+ INV : 12,
+ SIZE : 11,
+ NEST : 10,
+ ABRT : 9,
+ RTRY : 8,
+ /*7..5 : RES0*/
+ REASON : 4..0,
+}
+register TMAbortEffect : TMSTATUS_type /* we abuse the register write to pass out the status value */
+register TMStartEffect : TMSTATUS_type /* we abuse the register read to pass in the status value */
+
+/* General purpose registers */
+
+register R30 : bits(64)
+register R29 : bits(64)
+register R28 : bits(64)
+register R27 : bits(64)
+register R26 : bits(64)
+register R25 : bits(64)
+register R24 : bits(64)
+register R23 : bits(64)
+register R22 : bits(64)
+register R21 : bits(64)
+register R20 : bits(64)
+register R19 : bits(64)
+register R18 : bits(64)
+register R17 : bits(64)
+register R16 : bits(64)
+register R15 : bits(64)
+register R14 : bits(64)
+register R13 : bits(64)
+register R12 : bits(64)
+register R11 : bits(64)
+register R10 : bits(64)
+register R9 : bits(64)
+register R8 : bits(64)
+register R7 : bits(64)
+register R6 : bits(64)
+register R5 : bits(64)
+register R4 : bits(64)
+register R3 : bits(64)
+register R2 : bits(64)
+register R1 : bits(64)
+register R0 : bits(64)
+
+let _R : vector(32,dec,(register(bits(64)))) =
+ [undefined,R30,R29,R28,R27,R26,R25,R24,R23,R22,R21,
+ R20,R19,R18,R17,R16,R15,R14,R13,R12,R11,
+ R10,R9 ,R8 ,R7 ,R6 ,R5 ,R4 ,R3 ,R2 ,R1 ,
+ R0]
+
+val reg_index : reg_size -> UInt_reg effect pure
+function reg_index x = (x : (reg_index))
+
+/* SIMD and floating-point registers */
+
+register V31 : bits(128)
+register V30 : bits(128)
+register V29 : bits(128)
+register V28 : bits(128)
+register V27 : bits(128)
+register V26 : bits(128)
+register V25 : bits(128)
+register V24 : bits(128)
+register V23 : bits(128)
+register V22 : bits(128)
+register V21 : bits(128)
+register V20 : bits(128)
+register V19 : bits(128)
+register V18 : bits(128)
+register V17 : bits(128)
+register V16 : bits(128)
+register V15 : bits(128)
+register V14 : bits(128)
+register V13 : bits(128)
+register V12 : bits(128)
+register V11 : bits(128)
+register V10 : bits(128)
+register V9 : bits(128)
+register V8 : bits(128)
+register V7 : bits(128)
+register V6 : bits(128)
+register V5 : bits(128)
+register V4 : bits(128)
+register V3 : bits(128)
+register V2 : bits(128)
+register V1 : bits(128)
+register V0 : bits(128)
+
+let _V : vector(32,dec,(register(bits(128)))) =
+ [undefined,V31,V30,V29,V28,V27,V26,V25,V24,V23,V22,
+ V21,V20,V19,V18,V17,V16,V15,V14,V13,V12,
+ V11,V10,V9 ,V8 ,V7 ,V6 ,V5 ,V4 ,V3 ,V2 ,
+ V1 ,V0]
+
+
+/* lsl: used instead of the ARM ARM << over integers */
+val lsl : forall 'm 'n, 'm >= 0 & 'n >= 0. (atom('n), atom('m)) -> atom('n * (2 ^ 'm))
+function lsl (n, m) = n * (2 ^ m)
+
+/* not_implemented is used to indicate something WE did not implement */
+val not_implemented : string -> unit effect { escape }
+function not_implemented message = exit () /* TODO message */
+
+/* not_implemented_extern is used to indicate something ARM did not define
+ and we did not define yet either. Those functions used to be declared as
+ external but undefined there. */
+val not_implemented_extern : forall 'a. string -> 'a effect { escape }
+function not_implemented_extern (message) =
+ exit () /* message; TODO */
+
+/* info is used to convey information to the user */
+val info : string -> unit effect pure
+let info(message) = ()
+
+struct IMPLEMENTATION_DEFINED_type =
+{
+ HaveCRCExt : boolean,
+ HaveAArch32EL : boolean,
+ HaveAnyAArch32 : boolean,
+ HaveEL2 : boolean,
+ HaveEL3 : boolean,
+ HighestELUsingAArch32 : boolean,
+ IsSecureBelowEL3 : boolean,
+}
+let IMPLEMENTATION_DEFINED =
+{
+ HaveCRCExt = true;
+ HaveAArch32EL = false;
+ HaveAnyAArch32 = false;
+ HaveEL2 = false;
+ HaveEL3 = false;
+ HighestELUsingAArch32 = false;
+ IsSecureBelowEL3 = false;
+}
+
+/* FIXME: ask Kathy what should we do with this */
+let UNKNOWN = 0
+
+
+/* external */ val speculate_exclusive_success : unit -> bool effect {exmem}
diff --git a/aarch64_small/armV8.lem b/aarch64_small/armV8.lem
new file mode 100644
index 00000000..c1ae6726
--- /dev/null
+++ b/aarch64_small/armV8.lem
@@ -0,0 +1,6925 @@
+(* Generated by Sail from armV8.sail. *)
+open import Interp_ast
+open import Pervasives
+(*Supply common numeric constants at the right type to alleviate repeated calls to typeclass macro*)
+let zero : integer = integerFromNat 0
+let one : integer = integerFromNat 1
+let two : integer = integerFromNat 2
+let three : integer = integerFromNat 3
+let four : integer = integerFromNat 4
+let five : integer = integerFromNat 5
+let six : integer = integerFromNat 6
+let seven : integer = integerFromNat 7
+let eight : integer = integerFromNat 8
+let fifteen : integer = integerFromNat 15
+let sixteen : integer = integerFromNat 16
+let twenty : integer = integerFromNat 20
+let twentythree : integer = integerFromNat 23
+let twentyfour : integer = integerFromNat 24
+let thirty : integer = integerFromNat 30
+let thirtyone : integer = integerFromNat 31
+let thirtytwo : integer = integerFromNat 32
+let thirtyfive : integer = integerFromNat 35
+let thirtynine : integer = integerFromNat 39
+let forty : integer = integerFromNat 40
+let fortyseven : integer = integerFromNat 47
+let fortyeight : integer = integerFromNat 48
+let fiftyfive : integer = integerFromNat 55
+let fiftysix : integer = integerFromNat 56
+let fiftyseven : integer = integerFromNat 57
+let sixtyone : integer = integerFromNat 61
+let sixtythree : integer = integerFromNat 63
+let sixtyfour : integer = integerFromNat 64
+let onetwentyseven : integer = integerFromNat 127
+let onetwentyeight : integer = integerFromNat 128
+let defs = Defs [
+(DEF_default (DT_aux (DT_order (Ord_aux Ord_dec Unknown)) Unknown));
+(DEF_type (TD_aux (TD_abbrev (Id_aux (Id "boolean") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)) (Unknown, (Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_abbrev (Id_aux (Id "integer") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_id (Id_aux (Id "int") Unknown)) Unknown)) Unknown)) (Unknown, (Just ((T_abbrev (T_id "int") (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_abbrev (Id_aux (Id "uinteger") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_id (Id_aux (Id "nat") Unknown)) Unknown)) Unknown)) (Unknown, (Just ((T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_abbrev (Id_aux (Id "reg_size") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_abbrev (Id_aux (Id "reg_index") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown)]) Unknown)) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_abbrev (Id_aux (Id "SIMD_index") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown)]) Unknown)) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "_PC") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "_PC")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant seven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant eight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "TxNestingLevel") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TxNestingLevel")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "TMSTATUS_type") Unknown) (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 16) Unknown), (Id_aux (Id "IMP") Unknown)); ((BF_aux (BF_single 15) Unknown), (Id_aux (Id "DBG") Unknown)); ((BF_aux (BF_single 14) Unknown), (Id_aux (Id "MEM") Unknown)); ((BF_aux (BF_single 13) Unknown), (Id_aux (Id "ERR") Unknown)); ((BF_aux (BF_single 12) Unknown), (Id_aux (Id "INV") Unknown)); ((BF_aux (BF_single 11) Unknown), (Id_aux (Id "SIZE") Unknown)); ((BF_aux (BF_single 10) Unknown), (Id_aux (Id "NEST") Unknown)); ((BF_aux (BF_single 9) Unknown), (Id_aux (Id "ABRT") Unknown)); ((BF_aux (BF_single 8) Unknown), (Id_aux (Id "RTRY") Unknown)); ((BF_aux (BF_range 4 0) Unknown), (Id_aux (Id "REASON") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "TMSTATUS_type") Unknown)) Unknown) (Id_aux (Id "TMAbortEffect") Unknown)) (Unknown,(Just ((T_abbrev (T_id "TMSTATUS_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "TMAbortEffect")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "TMSTATUS_type") Unknown)) Unknown) (Id_aux (Id "TMStartEffect") Unknown)) (Unknown,(Just ((T_abbrev (T_id "TMSTATUS_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "TMStartEffect")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R30") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R30")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R29") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R29")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R28") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R28")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R27") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R27")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R26") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R26")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R25") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R25")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R24") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R24")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R23") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R23")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R22") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R22")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R21") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R21")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R20") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R20")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R19") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R19")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R18") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R18")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R17") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R17")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R16") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R16")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R15") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R15")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R14") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R14")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R13") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R13")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R12") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R12")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R11") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R11")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R10") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R10")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R9") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R9")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R8") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R8")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R7") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R7")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R6") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R6")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R5") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R5")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R4") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R4")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R3") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R3")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R2") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R2")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R1") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R0") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "R0")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "_R") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_undef Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R30") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R29") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R28") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R27") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R26") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R25") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R24") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R23") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R22") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R21") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R20") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R19") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R18") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R17") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R16") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R15") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R14") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R13") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R12") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R11") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R10") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R9") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R8") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R7") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R6") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R5") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R4") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R3") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R2") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R1") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "R0") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_undef Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_undef Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "reg_index") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "UInt_reg") Unknown) (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "unsigned") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), (Tag_extern (Just "unsigned")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))) (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V31") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V31")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V30") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V30")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V29") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V29")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V28") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V28")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V27") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V27")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V26") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V26")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V25") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V25")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V24") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V24")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V23") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V23")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V22") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V22")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V21") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V21")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V20") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V20")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V19") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V19")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V18") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V18")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V17") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V17")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V16") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V16")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V15") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V15")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V14") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V14")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V13") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V13")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V12") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V12")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V11") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V11")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V10") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V10")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V9") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V9")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V8") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V8")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V7") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V7")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V6") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V6")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V5") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V5")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V4") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V4")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V3") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V3")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V2") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V2")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V1") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V0") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "V0")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "_V") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const 33)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_undef Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V31") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V30") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V29") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V28") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V27") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V26") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V25") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V24") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V23") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V22") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V21") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V20") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V19") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V18") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V17") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V16") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V15") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V14") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V13") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V12") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V11") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V10") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V9") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V8") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V7") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V6") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V5") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V4") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V3") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V2") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "V1") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "V0") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const 33)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_undef Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const 33)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_undef Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'m") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'n") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'m") Unknown)) Unknown) (Nexp_aux (Nexp_constant zero) Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'n") Unknown)) Unknown) (Nexp_aux (Nexp_constant zero) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'n") Unknown)) Unknown) (Nexp_aux (Nexp_exp (Nexp_aux (Nexp_var (Kid_aux (Var "'m") Unknown)) Unknown)) Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "lsl") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'n"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'m"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "atom" (T_args [(T_arg_nexp (Ne_var "'n"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'m"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'n"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown)
+ (E_aux (E_app_infix (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "**") Unknown) (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'m"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_exp (Ne_var "'nv21")))])), (Tag_extern (Just "power")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv7") (Ne_var "'nv8")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'n") (Ne_exp (Ne_var "'m"))))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "atom" (T_args [(T_arg_nexp (Ne_var "'n"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'m"))]))]) (T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'n") (Ne_exp (Ne_var "'m"))))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "not_implemented") Unknown) (P_aux (P_id (Id_aux (Id "message") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_exit (E_aux (E_id (Id_aux (Id "message") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "string") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_none (Kid_aux (Var "'a") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_var (Kid_aux (Var "'a") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "not_implemented_extern") Unknown) (P_aux (P_id (Id_aux (Id "message") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_exit (E_aux (E_id (Id_aux (Id "message") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_var "'tv0"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_var "'tv0"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_var "'tv0"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "string") (T_var "'tv0") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "info") Unknown) (P_aux (P_id (Id_aux (Id "message") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "string") (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_record (Id_aux (Id "IMPLEMENTATION_DEFINED_type") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypQ_aux TypQ_no_forall Unknown) [
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "HaveCRCExt") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "HaveAArch32EL") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "HaveAnyAArch32") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "HaveEL2") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "HaveEL3") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "HighestELUsingAArch32") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "IsSecureBelowEL3") Unknown));] false) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "IMPLEMENTATION_DEFINED") Unknown)) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_record (FES_aux (FES_Fexps [(FE_aux (FE_Fexp (Id_aux (Id "HaveCRCExt") Unknown) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "HaveAArch32EL") Unknown) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "HaveAnyAArch32") Unknown) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "HaveEL2") Unknown) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "HaveEL3") Unknown) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "HighestELUsingAArch32") Unknown) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "IsSecureBelowEL3") Unknown) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_exmem Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "speculate_exclusive_success") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "bool") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_exmem Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "HCR_type") Unknown) (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 33) Unknown), (Id_aux (Id "ID") Unknown)); ((BF_aux (BF_single 32) Unknown), (Id_aux (Id "CD") Unknown)); ((BF_aux (BF_single 31) Unknown), (Id_aux (Id "RW") Unknown)); ((BF_aux (BF_single 30) Unknown), (Id_aux (Id "TRVM") Unknown)); ((BF_aux (BF_single 29) Unknown), (Id_aux (Id "HCD") Unknown)); ((BF_aux (BF_single 28) Unknown), (Id_aux (Id "TDZ") Unknown)); ((BF_aux (BF_single 27) Unknown), (Id_aux (Id "TGE") Unknown)); ((BF_aux (BF_single 26) Unknown), (Id_aux (Id "TVM") Unknown)); ((BF_aux (BF_single 25) Unknown), (Id_aux (Id "TTLB") Unknown)); ((BF_aux (BF_single 24) Unknown), (Id_aux (Id "TPU") Unknown)); ((BF_aux (BF_single 23) Unknown), (Id_aux (Id "TPC") Unknown)); ((BF_aux (BF_single 22) Unknown), (Id_aux (Id "TSW") Unknown)); ((BF_aux (BF_single 21) Unknown), (Id_aux (Id "TACR") Unknown)); ((BF_aux (BF_single 20) Unknown), (Id_aux (Id "TIDCP") Unknown)); ((BF_aux (BF_single 19) Unknown), (Id_aux (Id "TSC") Unknown)); ((BF_aux (BF_single 18) Unknown), (Id_aux (Id "TID3") Unknown)); ((BF_aux (BF_single 17) Unknown), (Id_aux (Id "TID2") Unknown)); ((BF_aux (BF_single 16) Unknown), (Id_aux (Id "TID1") Unknown)); ((BF_aux (BF_single 15) Unknown), (Id_aux (Id "TID0") Unknown)); ((BF_aux (BF_single 14) Unknown), (Id_aux (Id "TWE") Unknown)); ((BF_aux (BF_single 13) Unknown), (Id_aux (Id "TWI") Unknown)); ((BF_aux (BF_single 12) Unknown), (Id_aux (Id "DC") Unknown)); ((BF_aux (BF_range 11 10) Unknown), (Id_aux (Id "BSU") Unknown)); ((BF_aux (BF_single 9) Unknown), (Id_aux (Id "FB") Unknown)); ((BF_aux (BF_single 8) Unknown), (Id_aux (Id "VSE") Unknown)); ((BF_aux (BF_single 7) Unknown), (Id_aux (Id "VI") Unknown)); ((BF_aux (BF_single 6) Unknown), (Id_aux (Id "VF") Unknown)); ((BF_aux (BF_single 5) Unknown), (Id_aux (Id "AMO") Unknown)); ((BF_aux (BF_single 4) Unknown), (Id_aux (Id "IMO") Unknown)); ((BF_aux (BF_single 3) Unknown), (Id_aux (Id "FMO") Unknown)); ((BF_aux (BF_single 2) Unknown), (Id_aux (Id "PTW") Unknown)); ((BF_aux (BF_single 1) Unknown), (Id_aux (Id "SWIO") Unknown)); ((BF_aux (BF_single 0) Unknown), (Id_aux (Id "VM") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "HCR_type") Unknown)) Unknown) (Id_aux (Id "HCR_EL2") Unknown)) (Unknown,(Just ((T_abbrev (T_id "HCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "HCR_EL2")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "ID_AA64MMFR0_type") Unknown) (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_range 31 28) Unknown), (Id_aux (Id "TGran4") Unknown)); ((BF_aux (BF_range 27 24) Unknown), (Id_aux (Id "TGran64") Unknown)); ((BF_aux (BF_range 23 20) Unknown), (Id_aux (Id "TGran16") Unknown)); ((BF_aux (BF_range 19 16) Unknown), (Id_aux (Id "BigEndEL0") Unknown)); ((BF_aux (BF_range 15 12) Unknown), (Id_aux (Id "SNSMem") Unknown)); ((BF_aux (BF_range 11 8) Unknown), (Id_aux (Id "BigEnd") Unknown)); ((BF_aux (BF_range 7 4) Unknown), (Id_aux (Id "ASIDBits") Unknown)); ((BF_aux (BF_range 3 0) Unknown), (Id_aux (Id "PARange") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "ID_AA64MMFR0_type") Unknown)) Unknown) (Id_aux (Id "ID_AA64MMFR0_EL1") Unknown)) (Unknown,(Just ((T_abbrev (T_id "ID_AA64MMFR0_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "ID_AA64MMFR0_EL1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "RVBAR_EL1") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "RVBAR_EL1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "RVBAR_EL2") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "RVBAR_EL2")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "RVBAR_EL3") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "RVBAR_EL3")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "SCRType") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 13) Unknown), (Id_aux (Id "TWE") Unknown)); ((BF_aux (BF_single 12) Unknown), (Id_aux (Id "TWI") Unknown)); ((BF_aux (BF_single 11) Unknown), (Id_aux (Id "ST") Unknown)); ((BF_aux (BF_single 10) Unknown), (Id_aux (Id "RW") Unknown)); ((BF_aux (BF_single 9) Unknown), (Id_aux (Id "SIF") Unknown)); ((BF_aux (BF_single 8) Unknown), (Id_aux (Id "HCE") Unknown)); ((BF_aux (BF_single 7) Unknown), (Id_aux (Id "SMD") Unknown)); ((BF_aux (BF_single 3) Unknown), (Id_aux (Id "EA") Unknown)); ((BF_aux (BF_single 2) Unknown), (Id_aux (Id "FIQ") Unknown)); ((BF_aux (BF_single 1) Unknown), (Id_aux (Id "IRQ") Unknown)); ((BF_aux (BF_single 0) Unknown), (Id_aux (Id "NS") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "SCRType") Unknown)) Unknown) (Id_aux (Id "SCR_EL3") Unknown)) (Unknown,(Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SCR_EL3")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "SCTLR_EL1_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 26) Unknown), (Id_aux (Id "UCI") Unknown)); ((BF_aux (BF_single 25) Unknown), (Id_aux (Id "EE") Unknown)); ((BF_aux (BF_single 24) Unknown), (Id_aux (Id "E0E") Unknown)); ((BF_aux (BF_single 19) Unknown), (Id_aux (Id "WXN") Unknown)); ((BF_aux (BF_single 18) Unknown), (Id_aux (Id "nTWE") Unknown)); ((BF_aux (BF_single 16) Unknown), (Id_aux (Id "nTWI") Unknown)); ((BF_aux (BF_single 15) Unknown), (Id_aux (Id "UCT") Unknown)); ((BF_aux (BF_single 14) Unknown), (Id_aux (Id "DZE") Unknown)); ((BF_aux (BF_single 12) Unknown), (Id_aux (Id "I") Unknown)); ((BF_aux (BF_single 9) Unknown), (Id_aux (Id "UMA") Unknown)); ((BF_aux (BF_single 8) Unknown), (Id_aux (Id "SED") Unknown)); ((BF_aux (BF_single 7) Unknown), (Id_aux (Id "ITD") Unknown)); ((BF_aux (BF_single 5) Unknown), (Id_aux (Id "CP15BEN") Unknown)); ((BF_aux (BF_single 4) Unknown), (Id_aux (Id "SA0") Unknown)); ((BF_aux (BF_single 3) Unknown), (Id_aux (Id "SA") Unknown)); ((BF_aux (BF_single 2) Unknown), (Id_aux (Id "C") Unknown)); ((BF_aux (BF_single 1) Unknown), (Id_aux (Id "A") Unknown)); ((BF_aux (BF_single 0) Unknown), (Id_aux (Id "M") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "SCTLR_EL1_type") Unknown)) Unknown) (Id_aux (Id "SCTLR_EL1") Unknown)) (Unknown,(Just ((T_abbrev (T_id "SCTLR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SCTLR_EL1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "SCTLR_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 25) Unknown), (Id_aux (Id "EE") Unknown)); ((BF_aux (BF_single 19) Unknown), (Id_aux (Id "WXN") Unknown)); ((BF_aux (BF_single 12) Unknown), (Id_aux (Id "I") Unknown)); ((BF_aux (BF_single 3) Unknown), (Id_aux (Id "SA") Unknown)); ((BF_aux (BF_single 2) Unknown), (Id_aux (Id "C") Unknown)); ((BF_aux (BF_single 1) Unknown), (Id_aux (Id "A") Unknown)); ((BF_aux (BF_single 0) Unknown), (Id_aux (Id "M") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "SCTLR_type") Unknown)) Unknown) (Id_aux (Id "SCTLR_EL2") Unknown)) (Unknown,(Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SCTLR_EL2")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "SCTLR_type") Unknown)) Unknown) (Id_aux (Id "SCTLR_EL3") Unknown)) (Unknown,(Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SCTLR_EL3")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "TCR_EL1_type") Unknown) (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 38) Unknown), (Id_aux (Id "TBI1") Unknown)); ((BF_aux (BF_single 37) Unknown), (Id_aux (Id "TBI0") Unknown)); ((BF_aux (BF_single 36) Unknown), (Id_aux (Id "AS") Unknown)); ((BF_aux (BF_range 34 32) Unknown), (Id_aux (Id "IPS") Unknown)); ((BF_aux (BF_range 31 30) Unknown), (Id_aux (Id "TG1") Unknown)); ((BF_aux (BF_range 29 28) Unknown), (Id_aux (Id "SH1") Unknown)); ((BF_aux (BF_range 27 26) Unknown), (Id_aux (Id "ORGN1") Unknown)); ((BF_aux (BF_range 25 24) Unknown), (Id_aux (Id "IRGN1") Unknown)); ((BF_aux (BF_single 23) Unknown), (Id_aux (Id "EPD1") Unknown)); ((BF_aux (BF_single 22) Unknown), (Id_aux (Id "A1") Unknown)); ((BF_aux (BF_range 21 16) Unknown), (Id_aux (Id "T1SZ") Unknown)); ((BF_aux (BF_range 15 14) Unknown), (Id_aux (Id "TG0") Unknown)); ((BF_aux (BF_range 13 12) Unknown), (Id_aux (Id "SH0") Unknown)); ((BF_aux (BF_range 11 10) Unknown), (Id_aux (Id "ORGN0") Unknown)); ((BF_aux (BF_range 9 8) Unknown), (Id_aux (Id "IRGN0") Unknown)); ((BF_aux (BF_single 7) Unknown), (Id_aux (Id "EPD0") Unknown)); ((BF_aux (BF_range 5 0) Unknown), (Id_aux (Id "T0SZ") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "TCR_EL1_type") Unknown)) Unknown) (Id_aux (Id "TCR_EL1") Unknown)) (Unknown,(Just ((T_abbrev (T_id "TCR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "TCR_EL1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "TCR_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 20) Unknown), (Id_aux (Id "TBI") Unknown)); ((BF_aux (BF_range 18 16) Unknown), (Id_aux (Id "PS") Unknown)); ((BF_aux (BF_range 15 14) Unknown), (Id_aux (Id "TG0") Unknown)); ((BF_aux (BF_range 13 12) Unknown), (Id_aux (Id "SH0") Unknown)); ((BF_aux (BF_range 11 10) Unknown), (Id_aux (Id "ORGN0") Unknown)); ((BF_aux (BF_range 9 8) Unknown), (Id_aux (Id "IRGN0") Unknown)); ((BF_aux (BF_range 5 0) Unknown), (Id_aux (Id "T0SZ") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "TCR_type") Unknown)) Unknown) (Id_aux (Id "TCR_EL2") Unknown)) (Unknown,(Just ((T_abbrev (T_id "TCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "TCR_EL2")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "TCR_type") Unknown)) Unknown) (Id_aux (Id "TCR_EL3") Unknown)) (Unknown,(Just ((T_abbrev (T_id "TCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "TCR_EL3")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "TPIDR_EL0") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TPIDR_EL0")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "TPIDR_EL1") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TPIDR_EL1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "TPIDR_EL2") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TPIDR_EL2")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "TPIDR_EL3") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TPIDR_EL3")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "DBGPRCR_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 0) Unknown), (Id_aux (Id "CORENPDRQ") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "DBGPRCR_type") Unknown)) Unknown) (Id_aux (Id "DBGPRCR_EL1") Unknown)) (Unknown,(Just ((T_abbrev (T_id "DBGPRCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "DBGPRCR_EL1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "OSDLR_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 0) Unknown), (Id_aux (Id "DLK") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "OSDLR_type") Unknown)) Unknown) (Id_aux (Id "OSDLR_EL1") Unknown)) (Unknown,(Just ((T_abbrev (T_id "OSDLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "OSDLR_EL1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "EDSCR_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 30) Unknown), (Id_aux (Id "RXfull") Unknown)); ((BF_aux (BF_single 29) Unknown), (Id_aux (Id "TXfull") Unknown)); ((BF_aux (BF_single 28) Unknown), (Id_aux (Id "ITO") Unknown)); ((BF_aux (BF_single 27) Unknown), (Id_aux (Id "RXO") Unknown)); ((BF_aux (BF_single 26) Unknown), (Id_aux (Id "TXU") Unknown)); ((BF_aux (BF_single 25) Unknown), (Id_aux (Id "PipeAdv") Unknown)); ((BF_aux (BF_single 24) Unknown), (Id_aux (Id "ITE") Unknown)); ((BF_aux (BF_range 23 22) Unknown), (Id_aux (Id "INTdis") Unknown)); ((BF_aux (BF_single 21) Unknown), (Id_aux (Id "TDA") Unknown)); ((BF_aux (BF_single 20) Unknown), (Id_aux (Id "MA") Unknown)); ((BF_aux (BF_single 18) Unknown), (Id_aux (Id "NS") Unknown)); ((BF_aux (BF_single 16) Unknown), (Id_aux (Id "SDD") Unknown)); ((BF_aux (BF_single 14) Unknown), (Id_aux (Id "HDE") Unknown)); ((BF_aux (BF_range 13 10) Unknown), (Id_aux (Id "RW") Unknown)); ((BF_aux (BF_range 9 8) Unknown), (Id_aux (Id "EL") Unknown)); ((BF_aux (BF_single 7) Unknown), (Id_aux (Id "A") Unknown)); ((BF_aux (BF_single 6) Unknown), (Id_aux (Id "ERR") Unknown)); ((BF_aux (BF_range 5 0) Unknown), (Id_aux (Id "STATUS") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "EDSCR_type") Unknown)) Unknown) (Id_aux (Id "EDSCR") Unknown)) (Unknown,(Just ((T_abbrev (T_id "EDSCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "EDSCR")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "TXIDR_EL0_type") Unknown) (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_range 7 0) Unknown), (Id_aux (Id "DEPTH") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "TXIDR_EL0_type") Unknown)) Unknown) (Id_aux (Id "TXIDR_EL0") Unknown)) (Unknown,(Just ((T_abbrev (T_id "TXIDR_EL0_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "TXIDR_EL0")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_ResetControlRegisters") Unknown) (P_aux (P_id (Id_aux (Id "cold_reset") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_abbrev (T_id "boolean") (T_id "bit")) (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "CurrentEL_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_range 3 2) Unknown), (Id_aux (Id "EL") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "CurrentEL_type") Unknown)) Unknown) (Id_aux (Id "CurrentEL") Unknown)) (Unknown,(Just ((T_abbrev (T_id "CurrentEL_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "CurrentEL")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "DAIF_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 9) Unknown), (Id_aux (Id "D") Unknown)); ((BF_aux (BF_single 8) Unknown), (Id_aux (Id "A") Unknown)); ((BF_aux (BF_single 7) Unknown), (Id_aux (Id "I") Unknown)); ((BF_aux (BF_single 6) Unknown), (Id_aux (Id "F") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "DAIF_type") Unknown)) Unknown) (Id_aux (Id "DAIF") Unknown)) (Unknown,(Just ((T_abbrev (T_id "DAIF_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "NZCV_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 31) Unknown), (Id_aux (Id "N") Unknown)); ((BF_aux (BF_single 30) Unknown), (Id_aux (Id "Z") Unknown)); ((BF_aux (BF_single 29) Unknown), (Id_aux (Id "C") Unknown)); ((BF_aux (BF_single 28) Unknown), (Id_aux (Id "V") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "NZCV_type") Unknown)) Unknown) (Id_aux (Id "NZCV") Unknown)) (Unknown,(Just ((T_abbrev (T_id "NZCV_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "SP_EL0") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL0")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "SP_EL1") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "SP_EL2") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL2")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "SP_EL3") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL3")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "SPSel_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 0) Unknown), (Id_aux (Id "SP") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "SPSel_type") Unknown)) Unknown) (Id_aux (Id "SPSel") Unknown)) (Unknown,(Just ((T_abbrev (T_id "SPSel_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSel")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "SPSR_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 31) Unknown), (Id_aux (Id "N") Unknown)); ((BF_aux (BF_single 30) Unknown), (Id_aux (Id "Z") Unknown)); ((BF_aux (BF_single 29) Unknown), (Id_aux (Id "C") Unknown)); ((BF_aux (BF_single 28) Unknown), (Id_aux (Id "V") Unknown)); ((BF_aux (BF_single 21) Unknown), (Id_aux (Id "SS") Unknown)); ((BF_aux (BF_single 20) Unknown), (Id_aux (Id "IL") Unknown)); ((BF_aux (BF_single 9) Unknown), (Id_aux (Id "E") Unknown)); ((BF_aux (BF_single 8) Unknown), (Id_aux (Id "A") Unknown)); ((BF_aux (BF_single 7) Unknown), (Id_aux (Id "I") Unknown)); ((BF_aux (BF_single 6) Unknown), (Id_aux (Id "F") Unknown)); ((BF_aux (BF_single 4) Unknown), (Id_aux (Id "M4") Unknown)); ((BF_aux (BF_range 3 0) Unknown), (Id_aux (Id "M3_0") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "SPSR_type") Unknown)) Unknown) (Id_aux (Id "SPSR_EL1") Unknown)) (Unknown,(Just ((T_abbrev (T_id "SPSR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSR_EL1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "SPSR_type") Unknown)) Unknown) (Id_aux (Id "SPSR_EL2") Unknown)) (Unknown,(Just ((T_abbrev (T_id "SPSR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSR_EL2")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "SPSR_type") Unknown)) Unknown) (Id_aux (Id "SPSR_EL3") Unknown)) (Unknown,(Just ((T_abbrev (T_id "SPSR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSR_EL3")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "ELR_EL1") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "ELR_EL1")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "ELR_EL2") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "ELR_EL2")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "ELR_EL3") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "ELR_EL3")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "SCRType") Unknown)) Unknown) (Id_aux (Id "SCR") Unknown)) (Unknown,(Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SCR")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_register (Id_aux (Id "DBGOSDLR_type") Unknown) (Nexp_aux (Nexp_constant thirtyone) Unknown) (Nexp_aux (Nexp_constant zero) Unknown) [((BF_aux (BF_single 0) Unknown), (Id_aux (Id "DLK") Unknown)); ]) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "DBGOSDLR_type") Unknown)) Unknown) (Id_aux (Id "DBGOSDLR") Unknown)) (Unknown,(Just ((T_abbrev (T_id "DBGOSDLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "DBGOSDLR")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_id (Id_aux (Id "DBGPRCR_type") Unknown)) Unknown) (Id_aux (Id "DBGPRCR") Unknown)) (Unknown,(Just ((T_abbrev (T_id "DBGPRCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "DBGPRCR")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_alias (Id_aux (Id "PSTATE_N") Unknown) (AL_aux (AL_subreg
+ (RI_aux (RI_id (Id_aux (Id "NZCV") Unknown)) (Unknown,(Just ((T_abbrev (T_id "NZCV_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "N") Unknown)) (Unknown,(Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_alias (Id_aux (Id "PSTATE_Z") Unknown) (AL_aux (AL_subreg
+ (RI_aux (RI_id (Id_aux (Id "NZCV") Unknown)) (Unknown,(Just ((T_abbrev (T_id "NZCV_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "Z") Unknown)) (Unknown,(Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_alias (Id_aux (Id "PSTATE_C") Unknown) (AL_aux (AL_subreg
+ (RI_aux (RI_id (Id_aux (Id "NZCV") Unknown)) (Unknown,(Just ((T_abbrev (T_id "NZCV_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "C") Unknown)) (Unknown,(Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_alias (Id_aux (Id "PSTATE_V") Unknown) (AL_aux (AL_subreg
+ (RI_aux (RI_id (Id_aux (Id "NZCV") Unknown)) (Unknown,(Just ((T_abbrev (T_id "NZCV_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "V") Unknown)) (Unknown,(Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_alias (Id_aux (Id "PSTATE_D") Unknown) (AL_aux (AL_subreg
+ (RI_aux (RI_id (Id_aux (Id "DAIF") Unknown)) (Unknown,(Just ((T_abbrev (T_id "DAIF_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "D") Unknown)) (Unknown,(Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_alias (Id_aux (Id "PSTATE_A") Unknown) (AL_aux (AL_subreg
+ (RI_aux (RI_id (Id_aux (Id "DAIF") Unknown)) (Unknown,(Just ((T_abbrev (T_id "DAIF_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "A") Unknown)) (Unknown,(Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_alias (Id_aux (Id "PSTATE_I") Unknown) (AL_aux (AL_subreg
+ (RI_aux (RI_id (Id_aux (Id "DAIF") Unknown)) (Unknown,(Just ((T_abbrev (T_id "DAIF_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "I") Unknown)) (Unknown,(Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_alias (Id_aux (Id "PSTATE_F") Unknown) (AL_aux (AL_subreg
+ (RI_aux (RI_id (Id_aux (Id "DAIF") Unknown)) (Unknown,(Just ((T_abbrev (T_id "DAIF_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "F") Unknown)) (Unknown,(Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_alias (Id_aux (Id "PSTATE_EL") Unknown) (AL_aux (AL_subreg
+ (RI_aux (RI_id (Id_aux (Id "CurrentEL") Unknown)) (Unknown,(Just ((T_abbrev (T_id "CurrentEL_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "CurrentEL")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "EL") Unknown)) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "PSTATE_nRW") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "PSTATE_nRW")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_alias (Id_aux (Id "PSTATE_SP") Unknown) (AL_aux (AL_subreg
+ (RI_aux (RI_id (Id_aux (Id "SPSel") Unknown)) (Unknown,(Just ((T_abbrev (T_id "SPSel_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSel")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "SP") Unknown)) (Unknown,(Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "PSTATE_E") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "PSTATE_E")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_reg_dec (DEC_aux (DEC_reg (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "PSTATE_M") Unknown)) (Unknown,(Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "PSTATE_M")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "wPSTATE_NZCV") Unknown) (P_aux (P_tup [(P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "z") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "c") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "v") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "unit"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_Z") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "z") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_C") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "c") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_V") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "v") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "unit"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "wPSTATE_DAIF") Unknown) (P_aux (P_tup [(P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "f") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "unit"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_D") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_A") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_I") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_F") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "f") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "unit"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "AccType") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "AccType_NORMAL") Unknown); (Id_aux (Id "AccType_VEC") Unknown); (Id_aux (Id "AccType_STREAM") Unknown); (Id_aux (Id "AccType_VECSTREAM") Unknown); (Id_aux (Id "AccType_ATOMIC") Unknown); (Id_aux (Id "AccType_ORDERED") Unknown); (Id_aux (Id "AccType_UNPRIV") Unknown); (Id_aux (Id "AccType_IFETCH") Unknown); (Id_aux (Id "AccType_PTW") Unknown); (Id_aux (Id "AccType_DC") Unknown); (Id_aux (Id "AccType_IC") Unknown); (Id_aux (Id "AccType_AT") Unknown)] false) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "MBReqDomain") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "MBReqDomain_Nonshareable") Unknown); (Id_aux (Id "MBReqDomain_InnerShareable") Unknown); (Id_aux (Id "MBReqDomain_OuterShareable") Unknown); (Id_aux (Id "MBReqDomain_FullSystem") Unknown)] false) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "MBReqTypes") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "MBReqTypes_Reads") Unknown); (Id_aux (Id "MBReqTypes_Writes") Unknown); (Id_aux (Id "MBReqTypes_All") Unknown)] false) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "BranchType") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "BranchType_CALL") Unknown); (Id_aux (Id "BranchType_ERET") Unknown); (Id_aux (Id "BranchType_DBGEXIT") Unknown); (Id_aux (Id "BranchType_RET") Unknown); (Id_aux (Id "BranchType_JMP") Unknown); (Id_aux (Id "BranchType_EXCEPTION") Unknown); (Id_aux (Id "BranchType_UNKNOWN") Unknown)] false) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "MoveWideOp") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "MoveWideOp_N") Unknown); (Id_aux (Id "MoveWideOp_Z") Unknown); (Id_aux (Id "MoveWideOp_K") Unknown)] false) (Unknown, (Just ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "M32_User") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "M32_FIQ") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "M32_IRQ") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "M32_Svc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "M32_Monitor") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "M32_Abort") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "M32_Hyp") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "M32_Undef") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "M32_System") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "DeviceType") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "DeviceType_GRE") Unknown); (Id_aux (Id "DeviceType_nGRE") Unknown); (Id_aux (Id "DeviceType_nGnRE") Unknown); (Id_aux (Id "DeviceType_nGnRnE") Unknown)] false) (Unknown, (Just ((T_id "DeviceType"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "Fault") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "Fault_None") Unknown); (Id_aux (Id "Fault_AccessFlag") Unknown); (Id_aux (Id "Fault_Alignment") Unknown); (Id_aux (Id "Fault_Background") Unknown); (Id_aux (Id "Fault_Domain") Unknown); (Id_aux (Id "Fault_Permission") Unknown); (Id_aux (Id "Fault_Translation") Unknown); (Id_aux (Id "Fault_AddressSize") Unknown); (Id_aux (Id "Fault_SyncExternal") Unknown); (Id_aux (Id "Fault_SyncExternalOnWalk") Unknown); (Id_aux (Id "Fault_SyncParity") Unknown); (Id_aux (Id "Fault_SyncParityOnWalk") Unknown); (Id_aux (Id "Fault_AsyncParity") Unknown); (Id_aux (Id "Fault_AsyncExternal") Unknown); (Id_aux (Id "Fault_Debug") Unknown); (Id_aux (Id "Fault_TLBConflict") Unknown); (Id_aux (Id "Fault_Lockdown") Unknown); (Id_aux (Id "Fault_Exclusive") Unknown); (Id_aux (Id "Fault_ICacheMaint") Unknown)] false) (Unknown, (Just ((T_id "Fault"), (Tag_enum 18), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_record (Id_aux (Id "FaultRecord") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypQ_aux TypQ_no_forall Unknown) [
+ ((Typ_aux (Typ_id (Id_aux (Id "Fault") Unknown)) Unknown), (Id_aux (Id "type") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown), (Id_aux (Id "acctype") Unknown));
+ ((Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fortyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fortyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown), (Id_aux (Id "ipaddress") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "s2fs1walk") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "write") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown), (Id_aux (Id "level") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown), (Id_aux (Id "extflag") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "secondstage") Unknown));
+ ((Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown), (Id_aux (Id "domain") Unknown));
+ ((Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown), (Id_aux (Id "debugmoe") Unknown));] false) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_record (Id_aux (Id "MemAttrHints") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypQ_aux TypQ_no_forall Unknown) [
+ ((Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown), (Id_aux (Id "attrs") Unknown));
+ ((Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown), (Id_aux (Id "hints") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "transient") Unknown));] false) (Unknown, (Just ((T_id "MemAttrHints"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "MemType") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "MemType_Normal") Unknown); (Id_aux (Id "MemType_Device") Unknown)] false) (Unknown, (Just ((T_id "MemType"), (Tag_enum one), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_record (Id_aux (Id "MemoryAttributes") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypQ_aux TypQ_no_forall Unknown) [
+ ((Typ_aux (Typ_id (Id_aux (Id "MemType") Unknown)) Unknown), (Id_aux (Id "type") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown), (Id_aux (Id "shareable") Unknown));] false) (Unknown, (Just ((T_id "MemoryAttributes"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_record (Id_aux (Id "FullAddress") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypQ_aux TypQ_no_forall Unknown) [
+ ((Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown), (Id_aux (Id "physicaladdress") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown), (Id_aux (Id "NS") Unknown));] false) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_record (Id_aux (Id "AddressDescriptor") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypQ_aux TypQ_no_forall Unknown) [
+ ((Typ_aux (Typ_id (Id_aux (Id "FaultRecord") Unknown)) Unknown), (Id_aux (Id "fault") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "MemoryAttributes") Unknown)) Unknown), (Id_aux (Id "memattrs") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "FullAddress") Unknown)) Unknown), (Id_aux (Id "paddress") Unknown));] false) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "PrefetchHint") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "Prefetch_READ") Unknown); (Id_aux (Id "Prefetch_WRITE") Unknown); (Id_aux (Id "Prefetch_EXEC") Unknown)] false) (Unknown, (Just ((T_id "PrefetchHint"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "ASR_C") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "LSL_C") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "LSR_C") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_le (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "ROR_C") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "IsZero") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "Replicate") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "SignExtend") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "ZeroExtend") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "Zeros") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "Ones") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "UInt") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "SInt") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "HighestSetBit") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "CountLeadingZeroBits") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'N"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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 "boolean") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "IsSecure") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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 "boolean") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "IsSecureBelowEL3") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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 "SCRType") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "SCR_GEN") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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 "boolean") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "UsingAArch32") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "ELUsingAArch32") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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 "boolean") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "Halted") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "HaveEL") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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 "boolean") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "HaveAnyAArch32") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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 "boolean") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "HighestELUsingAArch32") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "Unreachable") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_id (Id_aux (Id "BranchType") Unknown)) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "Hint_Branch") Unknown))
+ (Unknown, (Just ((T_fn (T_id "BranchType") (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "CountOp") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "CountOp_CLZ") Unknown); (Id_aux (Id "CountOp_CLS") Unknown); (Id_aux (Id "CountOp_CNT") Unknown)] false) (Unknown, (Just ((T_id "CountOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "ExtendType") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "ExtendType_SXTB") Unknown); (Id_aux (Id "ExtendType_SXTH") Unknown); (Id_aux (Id "ExtendType_SXTW") Unknown); (Id_aux (Id "ExtendType_SXTX") Unknown); (Id_aux (Id "ExtendType_UXTB") Unknown); (Id_aux (Id "ExtendType_UXTH") Unknown); (Id_aux (Id "ExtendType_UXTW") Unknown); (Id_aux (Id "ExtendType_UXTX") Unknown)] false) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "RevOp") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "RevOp_RBIT") Unknown); (Id_aux (Id "RevOp_REV16") Unknown); (Id_aux (Id "RevOp_REV32") Unknown); (Id_aux (Id "RevOp_REV64") Unknown)] false) (Unknown, (Just ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "ShiftType") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "ShiftType_LSL") Unknown); (Id_aux (Id "ShiftType_LSR") Unknown); (Id_aux (Id "ShiftType_ASR") Unknown); (Id_aux (Id "ShiftType_ROR") Unknown)] false) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "LogicalOp") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "LogicalOp_AND") Unknown); (Id_aux (Id "LogicalOp_EOR") Unknown); (Id_aux (Id "LogicalOp_ORR") Unknown)] false) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "MemOp") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "MemOp_LOAD") Unknown); (Id_aux (Id "MemOp_STORE") Unknown); (Id_aux (Id "MemOp_PREFETCH") Unknown)] false) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "MemBarrierOp") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "MemBarrierOp_DSB") Unknown); (Id_aux (Id "MemBarrierOp_DMB") Unknown); (Id_aux (Id "MemBarrierOp_ISB") Unknown)] false) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "SystemHintOp") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "SystemHintOp_NOP") Unknown); (Id_aux (Id "SystemHintOp_YIELD") Unknown); (Id_aux (Id "SystemHintOp_WFE") Unknown); (Id_aux (Id "SystemHintOp_WFI") Unknown); (Id_aux (Id "SystemHintOp_SEV") Unknown); (Id_aux (Id "SystemHintOp_SEVL") Unknown)] false) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "PSTATEField") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "PSTATEField_DAIFSet") Unknown); (Id_aux (Id "PSTATEField_DAIFClr") Unknown); (Id_aux (Id "PSTATEField_SP") Unknown)] false) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "rPC") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "rSP") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "wX") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "rX") Unknown))
+ (Unknown, (Just ((T_fn (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64; 128]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "SIMD_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "wV") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64; 128]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "SIMD_index") Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "rV") Unknown))
+ (Unknown, (Just ((T_fn (T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64; 128]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "SIMD_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "rVpart") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))); (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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 "SCTLR_type") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "SCTLR'") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "AArch64_UndefinedFault") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "AddressDescriptor") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "AArch64_TranslateAddress") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_id "AddressDescriptor") (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "AArch64_WFxTrap") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "FaultRecord") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "AArch64_AlignmentFault") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_id "FaultRecord") (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "AArch64_ResetGeneralRegisters") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "AArch64_ResetSIMDFPRegisters") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "AArch64_ResetSpecialRegisters") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "integer") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "AArch64_IsExclusiveVA") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "DoubleLockStatus") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app (Id_aux (Id "ELUsingAArch32") Unknown) [(E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "DBGOSDLR") Unknown)) (Unknown, (Just ((T_abbrev (T_id "DBGOSDLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "DLK") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "DBGPRCR") Unknown)) (Unknown, (Just ((T_abbrev (T_id "DBGPRCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "CORENPDRQ") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_var "'nv87"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_var "'nv87"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_var "'nv87"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_var "'nv87"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_var "'nv87"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "Halted") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "OSDLR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "OSDLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "DLK") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv207")); (T_arg_nexp (Ne_var "'nv206"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv207")); (T_arg_nexp (Ne_var "'nv206"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv207")); (T_arg_nexp (Ne_var "'nv206"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv207")); (T_arg_nexp (Ne_var "'nv206"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv207")); (T_arg_nexp (Ne_var "'nv206"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "DBGPRCR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "DBGPRCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "CORENPDRQ") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv192")); (T_arg_nexp (Ne_var "'nv191"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv192")); (T_arg_nexp (Ne_var "'nv191"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv192")); (T_arg_nexp (Ne_var "'nv191"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv192")); (T_arg_nexp (Ne_var "'nv191"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv192")); (T_arg_nexp (Ne_var "'nv191"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "Halted") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_enum (Id_aux (Id "signalValue") Unknown) (Name_sect_aux Name_sect_none Unknown) [(Id_aux (Id "LOw") Unknown); (Id_aux (Id "HIGH") Unknown)] false) (Unknown, (Just ((T_id "signalValue"), (Tag_enum one), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "signalValue") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "signalDBGEN") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "signalDBGEN") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "signalValue"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "signalValue"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "signalValue") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "signalValue") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "signelNIDEN") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "signalNIDEN") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "signalValue"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "signalValue"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "signalValue") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "signalValue") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "signalSPIDEN") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "signalSPIDEN") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "signalValue"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "signalValue"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "signalValue") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "signalValue") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "signalDPNIDEN") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "signalSPNIDEN") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "signalValue"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "signalValue"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "signalValue") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ExternalInvasiveDebugEnabled") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "signalDBGEN") Unknown) []) (Unknown, (Just ((T_id "signalValue"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "HIGH") Unknown)) (Unknown, (Just ((T_id "signalValue"), (Tag_enum one), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ExternalSecureInvasiveDebugEnabled") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "IsSecure") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "ExternalInvasiveDebugEnabled") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "signalSPIDEN") Unknown) []) (Unknown, (Just ((T_id "signalValue"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "HIGH") Unknown)) (Unknown, (Just ((T_id "signalValue"), (Tag_enum one), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "DCPSInstruction") Unknown) (P_aux (P_id (Id_aux (Id "target_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "DCPSInstruction") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "DRPSInstruction") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "DRPSInstruction") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_Breakpoint") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_EDBGRQ") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_Step_Normal") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_Step_Exclusive") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_OSUnlockCatch") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_ResetCatch") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_Watchpoint") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_HaltInstruction") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_SoftwareAccess") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_ExceptionCatch") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "DebugHalt_Step_NoSyndrome") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Halt") Unknown) (P_aux (P_id (Id_aux (Id "reason") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "Halt") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Halted") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "EDSCR") Unknown)) (Unknown, (Just ((T_abbrev (T_id "EDSCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "STATUS") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "EDSCR") Unknown)) (Unknown, (Just ((T_abbrev (T_id "EDSCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "STATUS") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv10")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "HaltingAllowed") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "Halted") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app (Id_aux (Id "DoubleLockStatus") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "IsSecure") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ExternalSecureInvasiveDebugEnabled") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ExternalInvasiveDebugEnabled") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ReservedValue") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "AArch64_UndefinedFault") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "UnallocatedEncoding") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "AArch64_UndefinedFault") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "IsFault") Unknown) (P_aux (P_id (Id_aux (Id "addrdesc") Unknown)) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app_infix (E_aux (E_field (E_aux (E_field (E_aux (E_id (Id_aux (Id "addrdesc") Unknown)) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "fault") Unknown)) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "type") Unknown)) (Unknown, (Just ((T_id "Fault"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_id (Id_aux (Id "Fault_None") Unknown)) (Unknown, (Just ((T_id "Fault"), (Tag_enum 18), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "AddressDescriptor") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ASR") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "result'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "ASR_C") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ASR_C") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "extended_x") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "extended_x") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv109")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv81"); (Ne_var "'nv82")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv49") (Ne_var "'nv50")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "carry_out") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector_access (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "extended_x") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv118") (Ne_var "'nv119")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_tuple [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "carry_out") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "uinteger") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Align'") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "y") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "y") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_id (Id_aux (Id "y") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv29"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv13") (Ne_var "'nv14")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Align") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "y") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Align'") Unknown) [(E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv2"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "y") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "CountLeadingSignBits") Unknown) (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "CountLeadingZeroBits") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv158")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv132") (Ne_var "'nv133")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv85") (Ne_const zero)); (Ne_const one)])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv85") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv80")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv85") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "^") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv119")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv93") (Ne_var "'nv94")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv85")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv85") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv80")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv85") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv80")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv85") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_xor")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv85") (Ne_const zero)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv85") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv85") (Ne_const zero)); (Ne_const one)]))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'N"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'N"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "CountLeadingZeroBits") Unknown) (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "HighestSetBit") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const (zero - 1))]))])))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const (zero - 1))]))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)]))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "Some") Unknown) [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const (zero - 1))]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const (zero - 1))]))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv98")); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)]))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv72") (Ne_var "'nv73")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const (zero - 1))]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv40") (Ne_var "'nv41")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv40") (Ne_var "'nv41")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv40") (Ne_var "'nv41")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)]))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)]))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_le (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "Extend") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Extend") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "unsigned") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "unsigned") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [(E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "HighestSetBit") Unknown) (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bool") Unknown)) Unknown) (Id_aux (Id "break") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_for (Id_aux (Id "i") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv10") (Ne_var "'nv11")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Ord_aux Ord_dec Unknown)
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "break") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv7"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv77"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv77"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv77"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv77"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv77"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv7"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "break") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "break") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))]))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "integer") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Int") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv2"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv6"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "IsZero") Unknown) (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "IsZeroBit") Unknown) (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "IsZero") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_id "bit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "LSL") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "result'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "LSL_C") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "LSL_C") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "extended_x") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [(E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_var "'N"); (Ne_var "'S")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "extended_x") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv10")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "carry_out") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector_access (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "extended_x") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_tuple [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "carry_out") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "LSR") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "result'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "LSR_C") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "LSR_C") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "extended_x") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "extended_x") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv109")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv81"); (Ne_var "'nv82")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv49") (Ne_var "'nv50")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "carry_out") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector_access (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "extended_x") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv118") (Ne_var "'nv119")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_tuple [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "carry_out") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv7") (Ne_var "'S")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "integer") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Min") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "b") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "<=") Unknown) (E_aux (E_id (Id_aux (Id "b") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "lteq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "b") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)])))]) (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "uinteger") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "uMin") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "b") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "<=") Unknown) (E_aux (E_id (Id_aux (Id "b") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "lteq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "b") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "NOT") Unknown) (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_not")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "bit") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "NOT'") Unknown) (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "bit") (T_id "bit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Ones") Unknown) (P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Replicate") Unknown) [(E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ROR") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "result'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "ROR_C") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_le (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ROR_C") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "nat") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "mod") Unknown) (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_minus (Ne_var "'nv9") (Ne_const one)))])), (Tag_extern (Just "modulo")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "LSR") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "LSL") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv46") (Ne_var "'nv47")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_or")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "carry_out") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector_access (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv78") (Ne_var "'nv79")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_tuple [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "carry_out") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Replicate") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "M") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))])); (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))])); (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))])); (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "mod") Unknown) (E_aux (E_id (Id_aux (Id "M") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_minus (Ne_var "'nv31") (Ne_const one)))])), (Tag_extern (Just "modulo")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "zeros") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_var "'M")); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_var "'M"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown)
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_var "'M")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_var "'M")); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_var "'M"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_var "'M")); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_var "'M"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_for (Id_aux (Id "i") Unknown) (E_aux (E_id (Id_aux (Id "M") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "M") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Ord_aux Ord_inc Unknown)
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "<<") Unknown) (E_aux (E_id (Id_aux (Id "M") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_leftshift")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "zeros") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_var "'M")); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_var "'M"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv50")); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_var "'M"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv52")); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_minus (Ne_var "'N") (Ne_var "'M")); (Ne_var "'M")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_var "'M")); (Ne_var "'M")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_or")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "SInt") Unknown) (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "signed") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv4"))])), (Tag_extern (Just "signed")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv4"))])), (Tag_extern (Just "signed")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "SignExtend") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_as (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "h") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "remainder") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_var "'nv2")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Replicate") Unknown) [
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown)
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_add [(Ne_var "'nv2"); (Ne_const one)])))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "h") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_minus (Ne_var "'N") (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (Ne_add [(Ne_var "'nv2"); (Ne_const one)])]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (Ne_add [(Ne_var "'nv2"); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "UInt") Unknown) (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "unsigned") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv4"))])), (Tag_extern (Just "unsigned")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ZeroExtend") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num (zero - 1)) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const (zero - 1)))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'M") (Ne_const (zero - 1))))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_mult (Ne_var "'M") (Ne_const (zero - 1)))]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_mult (Ne_var "'M") (Ne_const (zero - 1)))]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_mult (Ne_var "'M") (Ne_const (zero - 1)))])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_mult (Ne_var "'M") (Ne_const (zero - 1)))]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_mult (Ne_var "'M") (Ne_const (zero - 1)))])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_mult (Ne_var "'M") (Ne_const (zero - 1)))]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_mult (Ne_var "'M") (Ne_const (zero - 1)))])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_mult (Ne_var "'M") (Ne_const (zero - 1)))]); (Ne_var "'M")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_mult (Ne_var "'M") (Ne_const (zero - 1)))]); (Ne_var "'M")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Zeros") Unknown) (P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "BitReverse") Unknown) (P_aux (P_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_for (Id_aux (Id "i") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv10") (Ne_var "'nv11")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Ord_aux Ord_inc Unknown)
+ (E_aux (E_assign (LEXP_aux (LEXP_vector
+ (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv6"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv93") (Ne_var "'nv94")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv67") (Ne_var "'nv68")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_vector_access (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv6"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "HaveCRCExt") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "IMPLEMENTATION_DEFINED") Unknown)) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "HaveCRCExt") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Poly32Mod2") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "poly") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id ">") Unknown) (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "gt")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "data'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_minus (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_minus (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "zeros") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_const thirtytwo)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_const thirtytwo))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [(E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_const thirtytwo)))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_const thirtytwo)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_const thirtytwo))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_const thirtytwo)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_const thirtytwo))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_for (Id_aux (Id "i") Unknown) (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv15") (Ne_var "'nv16")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Ord_aux Ord_dec Unknown)
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_var "'nv12"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_var "'nv57"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_var "'nv57"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_var "'nv57"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_var "'nv57"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_var "'nv57"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_vector_range
+ (LEXP_aux (LEXP_id (Id_aux (Id "data'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_var "'nv12"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv66") (Ne_var "'nv67")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv63")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv63") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_var "'nv12"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv209") (Ne_var "'nv210")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv205")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv63") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv163")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv63") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "^") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "poly") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv166")); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "zeros") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_const thirtytwo)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_const thirtytwo))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'N") (Ne_const thirtytwo)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_minus (Ne_var "'N") (Ne_const thirtytwo))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_var "'nv12"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num 33) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 33))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv176") (Ne_var "'nv177")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv172")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv172") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv172") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const thirtytwo); (Ne_add [(Ne_minus (Ne_var "'nv172") (Ne_const zero)); (Ne_const one)])]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_add [(Ne_minus (Ne_var "'nv172") (Ne_const zero)); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv163")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv63") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv163")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv63") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_xor")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv63")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv63") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ClearExclusiveByAddress") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "processorid") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "FullAddress"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "The model does not implement the exclusive monitors explicitly.") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "FullAddress"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ClearExclusiveLocal") Unknown) (P_aux (P_id (Id_aux (Id "processorid") Unknown)) (Unknown, (Just ((T_abbrev (T_id "int") (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "The model does not implement the exclusive monitors explicitly.") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_abbrev (T_id "int") (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))) (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "bit") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ExclusiveMonitorsStatus") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "The model does not implement the exclusive monitors explicitly.") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "ExclusiveMonitorsStatus should not be called") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "bit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "IsExclusiveGlobal") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "processorid") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "FullAddress"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "The model does not implement the exclusive monitors explicitly.") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "FullAddress"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "IsExclusiveLocal") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "processorid") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "FullAddress"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "The model does not implement the exclusive monitors explicitly.") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "FullAddress"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "MarkExclusiveGlobal") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "processorid") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "FullAddress"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "The model does not implement the exclusive monitors explicitly.") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "FullAddress"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "MarkExclusiveLocal") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "processorid") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "FullAddress"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "The model does not implement the exclusive monitors explicitly.") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "FullAddress"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "integer") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ProcessorID") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AddWithCarry") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "y") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "unsigned_sum") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv116"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "y") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv114"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv85"); (Ne_var "'nv86")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv76"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv47"); (Ne_var "'nv48")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "integer") Unknown)) Unknown) (Id_aux (Id "signed_sum") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "SInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv232"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app (Id_aux (Id "SInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "y") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv230"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv201"); (Ne_var "'nv202")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv192"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv163"); (Ne_var "'nv164")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "x") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "unsigned_sum") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector_access (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv268")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv242") (Ne_var "'nv243")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "z") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "IsZero") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "c") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv287"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "unsigned_sum") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "v") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "SInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv304"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "signed_sum") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_tuple [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv306")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "z") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv310")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "c") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv314")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "v") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv316")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const one); (Ne_const one)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv312")); (T_arg_nexp (Ne_var "'nv311")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const one); (Ne_var "'nv311")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_var "'nv311")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const one); (Ne_var "'nv307")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_var "'nv307")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "BigEndian") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "bigend") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "UsingAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "bigend") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_E") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "PSTATE_E")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "bigend") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "SCTLR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCTLR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "E0E") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "bigend") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_field (E_aux (E_app (Id_aux (Id "SCTLR'") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "EE") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "bigend") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'W") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'W") Unknown) [8; 16; 32; 64; 128]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'W") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'W") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'W") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'W") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "BigEndianReverse") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_fundef (FD_aux (FD_function (Rec_aux Rec_rec Unknown) (Typ_annot_opt_aux (Typ_annot_opt_some (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'W") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'W") Unknown) [8; 16; 32; 64; 128]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'W") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'W") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "BigEndianReverse") Unknown) (P_aux (P_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "width") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'W"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "half") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "width") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv7"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "width") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "BigEndianReverse") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "half") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv41") (Ne_var "'nv42")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv37")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv37") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv37") (Ne_const zero)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv37") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv37") (Ne_const zero)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv37") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv37") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "BigEndianReverse") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "width") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv75") (Ne_var "'nv76")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "half") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv71")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv71") (Ne_var "'nv72")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv71") (Ne_var "'nv72")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv71") (Ne_var "'nv72")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv71") (Ne_var "'nv72")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv71") (Ne_var "'nv72")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv32")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv71") (Ne_var "'nv72")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv37") (Ne_const zero)); (Ne_const one)]); (Ne_add [(Ne_minus (Ne_var "'nv71") (Ne_var "'nv72")); (Ne_const one)])]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv37") (Ne_const zero)); (Ne_const one)]); (Ne_add [(Ne_minus (Ne_var "'nv71") (Ne_var "'nv72")); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "DataMemoryBarrier_Reads") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "DataMemoryBarrier_Writes") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "DataMemoryBarrier_All") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "DataMemoryBarrier") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "MBReqDomain"); (T_id "MBReqTypes")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_id (Id_aux (Id "MBReqDomain_FullSystem") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_id (Id_aux (Id "MBReqDomain_InnerShareable") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "DataMemoryBarrier: not MBReqDomain_FullSystem or _InnerShareable") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MBReqTypes_Reads") Unknown) []) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DataMemoryBarrier_Reads") Unknown) []) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MBReqTypes_Writes") Unknown) []) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DataMemoryBarrier_Writes") Unknown) []) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MBReqTypes_All") Unknown) []) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DataMemoryBarrier_All") Unknown) []) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "MBReqDomain"); (T_id "MBReqTypes")]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "DataSynchronizationBarrier_Reads") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "DataSynchronizationBarrier_Writes") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "DataSynchronizationBarrier_All") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "DataSynchronizationBarrier") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "MBReqDomain"); (T_id "MBReqTypes")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_id (Id_aux (Id "MBReqDomain_FullSystem") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "DataSynchronizationBarrier: not MBReqDomain_FullSystem") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MBReqTypes_Reads") Unknown) []) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DataSynchronizationBarrier_Reads") Unknown) []) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MBReqTypes_Writes") Unknown) []) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DataSynchronizationBarrier_Writes") Unknown) []) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MBReqTypes_All") Unknown) []) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DataSynchronizationBarrier_All") Unknown) []) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "MBReqDomain"); (T_id "MBReqTypes")]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux TypQ_no_forall Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "PrefetchHint") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "integer") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "Hint_Prefetch") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "PrefetchHint"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Hint_Prefetch") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "addr") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "hint") Unknown)) (Unknown, (Just ((T_id "PrefetchHint"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "stream") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "PrefetchHint"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "PrefetchHint"); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "rMem_NORMAL") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "rMem_STREAM") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "rMem_ORDERED") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "rMem_ATOMIC") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "rMem_ATOMIC_ORDERED") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_record (Id_aux (Id "read_buffer_type") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypQ_aux TypQ_no_forall Unknown) [
+ ((Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown), (Id_aux (Id "acctype") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "bool") Unknown)) Unknown), (Id_aux (Id "exclusive") Unknown));
+ ((Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown), (Id_aux (Id "address") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown), (Id_aux (Id "size") Unknown));] false) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "empty_read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_record (FES_aux (FES_Fexps [(FE_aux (FE_Fexp (Id_aux (Id "size") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "acctype") Unknown) (E_aux (E_id (Id_aux (Id "AccType_NORMAL") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "exclusive") Unknown) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "address") Unknown) (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "read_buffer_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "_rMem") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "desc") Unknown)) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "read_buffer_type"); (T_id "AddressDescriptor"); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "bool") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_record (FES_aux (FES_Fexps [
+ (FE_aux (FE_Fexp (Id_aux (Id "acctype") Unknown) (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "exclusive") Unknown) (E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "address") Unknown)
+ (E_aux (E_field (E_aux (E_field (E_aux (E_id (Id_aux (Id "desc") Unknown)) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "physicaladdress") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "size") Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assert (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assert (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv76")); (T_arg_nexp (Ne_var "'nv77")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv76")); (T_arg_nexp (Ne_var "'nv77")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv65")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_field (E_aux (E_id (Id_aux (Id "desc") Unknown)) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "physicaladdress") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_record_update (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (FES_aux (FES_Fexps [
+ (FE_aux (FE_Fexp (Id_aux (Id "size") Unknown)
+ (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv97"); (Ne_var "'nv98")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv97"); (Ne_var "'nv98")]))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown,(Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "read_buffer_type"); (T_id "AddressDescriptor"); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "bool") (T_id "bit"))]) (T_id "read_buffer_type") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "flush_read_buffer") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "read_buffer_type"); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight)))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_ATOMIC") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rMem_ATOMIC") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv14") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv14") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_ORDERED") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rMem_ATOMIC_ORDERED") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv15") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv15") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "unimplemented memory access") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_NORMAL") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rMem_NORMAL") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv16") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv16") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_STREAM") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rMem_STREAM") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv17") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv17") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_UNPRIV") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rMem_NORMAL") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv18") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv18") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_ORDERED") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rMem_ORDERED") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv19") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv19") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_ATOMIC") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assert (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_lit (L_aux (L_string "Reached AccType_ATOMIC: unreachable when address values are known") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_id "string"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "BigEndian") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "BigEndianReverse") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "read_buffer_type"); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "wMem_Addr_NORMAL") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "wMem_Addr_ORDERED") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "wMem_Addr_ATOMIC") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "wMem_Addr_ATOMIC_ORDERED") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "wMem_Addr") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_id "boolean") (T_id "bit")); (T_id "AccType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_app (Id_aux (Id "AccType_NORMAL") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Addr_NORMAL") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_app (Id_aux (Id "AccType_STREAM") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Addr_NORMAL") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_app (Id_aux (Id "AccType_UNPRIV") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Addr_NORMAL") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_app (Id_aux (Id "AccType_ORDERED") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Addr_ORDERED") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_app (Id_aux (Id "AccType_ATOMIC") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Addr_ATOMIC") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_app (Id_aux (Id "AccType_ORDERED") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Addr_ATOMIC_ORDERED") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_eamem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_tup [(T_abbrev (T_id "boolean") (T_id "bit")); (T_id "AccType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "unrecognised memory access") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "wMem_Val_NORMAL") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "bool") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "wMem_Val_ATOMIC") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_abbrev (T_id "bool") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_record (Id_aux (Id "write_buffer_type") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypQ_aux TypQ_no_forall Unknown) [
+ ((Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown), (Id_aux (Id "acctype") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "bool") Unknown)) Unknown), (Id_aux (Id "exclusive") Unknown));
+ ((Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown), (Id_aux (Id "address") Unknown));
+ ((Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown), (Id_aux (Id "value") Unknown));
+ ((Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown), (Id_aux (Id "size") Unknown));] false) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_val (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "empty_write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_record (FES_aux (FES_Fexps [(FE_aux (FE_Fexp (Id_aux (Id "size") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "acctype") Unknown) (E_aux (E_id (Id_aux (Id "AccType_NORMAL") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "exclusive") Unknown) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "address") Unknown) (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "value") Unknown) (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num onetwentyeight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyeight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "write_buffer_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "_wMem") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "desc") Unknown)) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "write_buffer_type"); (T_id "AddressDescriptor"); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "bool") (T_id "bit")); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_record (FES_aux (FES_Fexps [
+ (FE_aux (FE_Fexp (Id_aux (Id "acctype") Unknown) (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "exclusive") Unknown) (E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "address") Unknown)
+ (E_aux (E_field (E_aux (E_field (E_aux (E_id (Id_aux (Id "desc") Unknown)) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "physicaladdress") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "value") Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num onetwentyeight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyeight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const onetwentyeight); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "size") Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assert (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assert (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv79")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv79")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv67")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_field (E_aux (E_id (Id_aux (Id "desc") Unknown)) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "physicaladdress") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_record_update (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (FES_aux (FES_Fexps [
+ (FE_aux (FE_Fexp (Id_aux (Id "value") Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num onetwentyeight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyeight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv130")); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv134")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv186") (Ne_var "'nv187")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv158") (Ne_var "'nv159")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv136")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv136") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv132")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv136") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_add [(Ne_minus (Ne_var "'nv136") (Ne_const zero)); (Ne_const one)])]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_add [(Ne_minus (Ne_var "'nv136") (Ne_const zero)); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv128"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv128")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const onetwentyeight); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "size") Unknown)
+ (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv99"); (Ne_var "'nv100")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv99"); (Ne_var "'nv100")]))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown,(Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "write_buffer_type"); (T_id "AddressDescriptor"); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "bool") (T_id "bit")); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "write_buffer_type") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "flush_write_buffer") Unknown) (P_aux (P_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_NORMAL") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Val_NORMAL") Unknown) [(E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv65") (Ne_var "'nv66")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv37") (Ne_var "'nv38")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_mult (Ne_var "'nv11") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv11") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv11") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_STREAM") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Val_NORMAL") Unknown) [(E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv133") (Ne_var "'nv134")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv105") (Ne_var "'nv106")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv83")); (T_arg_nexp (Ne_mult (Ne_var "'nv79") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv79") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv79") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_UNPRIV") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Val_NORMAL") Unknown) [(E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv149")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv201") (Ne_var "'nv202")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv173") (Ne_var "'nv174")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv151")); (T_arg_nexp (Ne_mult (Ne_var "'nv147") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv147") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv147") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_ORDERED") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Val_NORMAL") Unknown) [(E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv217")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv269") (Ne_var "'nv270")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv241") (Ne_var "'nv242")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv219")); (T_arg_nexp (Ne_mult (Ne_var "'nv215") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv215") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv215") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "unrecognised memory access") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "write_buffer_type") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "flush_write_buffer_exclusive") Unknown) (P_aux (P_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_ATOMIC") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Val_ATOMIC") Unknown) [(E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv54") (Ne_var "'nv55")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv26") (Ne_var "'nv27")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_mult (Ne_var "'nv0") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv0") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv0") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "AccType_ORDERED") Unknown) []) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Val_ATOMIC") Unknown) [(E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_field (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv122") (Ne_var "'nv123")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv94") (Ne_var "'nv95")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv72")); (T_arg_nexp (Ne_mult (Ne_var "'nv68") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv68") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv68") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "unrecognised memory access") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "write_buffer_type") (T_abbrev (T_id "bool") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "BranchTo") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "BranchType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Hint_Branch") Unknown) [(E_aux (E_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app (Id_aux (Id "UsingAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_PC") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "_PC")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "_PC")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "_PC")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv65")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv65"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "UsingAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_app_infix
+ (E_aux (E_case
+ (E_aux (E_vector_access
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fiftyfive) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fiftyfive))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv139")); (T_arg_nexp (Ne_var "'nv138"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv139")); (T_arg_nexp (Ne_var "'nv138"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv139")); (T_arg_nexp (Ne_var "'nv138"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv139")); (T_arg_nexp (Ne_var "'nv138"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv139")); (T_arg_nexp (Ne_var "'nv138"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_case
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "TCR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "TCR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TBI1") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux
+ (LEXP_vector_range
+ (LEXP_aux (LEXP_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtythree) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fiftysix) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fiftysix))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_minus (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant fiftysix) Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_case
+ (E_aux (E_vector_access
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fiftyfive) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fiftyfive))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv216")); (T_arg_nexp (Ne_var "'nv215"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv216")); (T_arg_nexp (Ne_var "'nv215"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv216")); (T_arg_nexp (Ne_var "'nv215"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv216")); (T_arg_nexp (Ne_var "'nv215"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv216")); (T_arg_nexp (Ne_var "'nv215"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "TCR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "TCR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TBI0") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv198")); (T_arg_nexp (Ne_var "'nv197"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv198")); (T_arg_nexp (Ne_var "'nv197"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv198")); (T_arg_nexp (Ne_var "'nv197"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv198")); (T_arg_nexp (Ne_var "'nv197"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv198")); (T_arg_nexp (Ne_var "'nv197"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_vector_range
+ (LEXP_aux (LEXP_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtythree) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fiftysix) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fiftysix))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_minus (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant fiftysix) Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv223")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv225")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_app_infix
+ (E_aux (E_case
+ (E_aux (E_vector_access
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fiftyfive) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fiftyfive))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv296")); (T_arg_nexp (Ne_var "'nv295"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv296")); (T_arg_nexp (Ne_var "'nv295"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv296")); (T_arg_nexp (Ne_var "'nv295"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv296")); (T_arg_nexp (Ne_var "'nv295"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv296")); (T_arg_nexp (Ne_var "'nv295"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_case
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "TCR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "TCR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TBI1") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv278")); (T_arg_nexp (Ne_var "'nv277"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv278")); (T_arg_nexp (Ne_var "'nv277"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv278")); (T_arg_nexp (Ne_var "'nv277"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv278")); (T_arg_nexp (Ne_var "'nv277"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv278")); (T_arg_nexp (Ne_var "'nv277"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux
+ (LEXP_vector_range
+ (LEXP_aux (LEXP_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtythree) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fiftysix) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fiftysix))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_minus (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant fiftysix) Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_case
+ (E_aux (E_vector_access
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fiftyfive) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fiftyfive))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv373")); (T_arg_nexp (Ne_var "'nv372"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv373")); (T_arg_nexp (Ne_var "'nv372"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv373")); (T_arg_nexp (Ne_var "'nv372"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv373")); (T_arg_nexp (Ne_var "'nv372"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv373")); (T_arg_nexp (Ne_var "'nv372"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "TCR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "TCR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TBI0") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv355")); (T_arg_nexp (Ne_var "'nv354"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv355")); (T_arg_nexp (Ne_var "'nv354"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv355")); (T_arg_nexp (Ne_var "'nv354"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv355")); (T_arg_nexp (Ne_var "'nv354"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv355")); (T_arg_nexp (Ne_var "'nv354"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_vector_range
+ (LEXP_aux (LEXP_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtythree) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fiftysix) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fiftysix))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_minus (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant fiftysix) Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv380")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv382")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_case
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "TCR_EL2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "TCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TBI") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv397")); (T_arg_nexp (Ne_var "'nv396"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv397")); (T_arg_nexp (Ne_var "'nv396"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv397")); (T_arg_nexp (Ne_var "'nv396"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv397")); (T_arg_nexp (Ne_var "'nv396"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv397")); (T_arg_nexp (Ne_var "'nv396"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux
+ (LEXP_vector_range
+ (LEXP_aux (LEXP_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtythree) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fiftysix) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fiftysix))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_minus (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant fiftysix) Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv401")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv403")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_case
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "TCR_EL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "TCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TBI") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv418")); (T_arg_nexp (Ne_var "'nv417"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv418")); (T_arg_nexp (Ne_var "'nv417"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv418")); (T_arg_nexp (Ne_var "'nv417"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv418")); (T_arg_nexp (Ne_var "'nv417"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv418")); (T_arg_nexp (Ne_var "'nv417"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux
+ (LEXP_vector_range
+ (LEXP_aux (LEXP_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtythree) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fiftysix) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fiftysix))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_minus (Nexp_aux (Nexp_constant sixtythree) Unknown) (Nexp_aux (Nexp_constant fiftysix) Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const fiftysix)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assert (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_PC") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "_PC")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "target'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "_PC")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "_PC")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "BranchType")]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Hint_Branch") Unknown) (P_aux (P_id (Id_aux (Id "hint") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "This hint can be used for hardware optimization that has no effect on the model.") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "BranchType") (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ResetExternalDebugRegisters") Unknown) (P_aux (P_id (Id_aux (Id "b") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "ResetExternalDebugRegisters") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_abbrev (T_id "boolean") (T_id "bit")) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "ThisInstrAddr") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ThisInstrAddr") Unknown) (P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "UsingAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rPC") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv89")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rSPSR") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "UsingAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "rSPSR UsingAArch32") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "SPSR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SPSR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSR_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "SPSR_EL2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SPSR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSR_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "SPSR_EL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SPSR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSR_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Unreachable") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ClearEventRegister") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "ClearEventRegister") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ConditionHolds") Unknown) (P_aux (P_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const three) (Ne_const one)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "PSTATE_Z") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "PSTATE_C") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "PSTATE_N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "PSTATE_V") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "PSTATE_C") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "PSTATE_Z") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_V") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_V") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "PSTATE_Z") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv180")); (T_arg_nexp (Ne_var "'nv179"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv180")); (T_arg_nexp (Ne_var "'nv179"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv180")); (T_arg_nexp (Ne_var "'nv179"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv180")); (T_arg_nexp (Ne_var "'nv179"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv180")); (T_arg_nexp (Ne_var "'nv179"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv238")); (T_arg_nexp (Ne_var "'nv237"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv238")); (T_arg_nexp (Ne_var "'nv237"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv238")); (T_arg_nexp (Ne_var "'nv237"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv238")); (T_arg_nexp (Ne_var "'nv237"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv238")); (T_arg_nexp (Ne_var "'nv237"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv218")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv220")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ELUsingAArch32") Unknown) (P_aux (P_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "EventRegisterSet") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "EventRegisterSet") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "EventRegistered") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "EventRegistered") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "HaveAArch32EL") Unknown) (P_aux (P_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "HaveAnyAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HighestELUsingAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "IMPLEMENTATION_DEFINED") Unknown)) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "HaveAArch32EL") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "HaveAnyAArch32") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_field (E_aux (E_id (Id_aux (Id "IMPLEMENTATION_DEFINED") Unknown)) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "HaveAnyAArch32") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "HaveEL") Unknown) (P_aux (P_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv10")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "IMPLEMENTATION_DEFINED") Unknown)) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "HaveEL2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "IMPLEMENTATION_DEFINED") Unknown)) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "HaveEL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "HighestELUsingAArch32") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "HaveAnyAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "IMPLEMENTATION_DEFINED") Unknown)) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "HighestELUsingAArch32") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Hint_Yield") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "InstructionSynchronizationBarrier") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "InterruptPending") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "InterruptPending") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "IsSecure") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "UsingAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "UsingAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_M") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "PSTATE_M")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "M32_Monitor") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "IsSecureBelowEL3") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "IsSecureBelowEL3") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_field
+ (E_aux (E_app (Id_aux (Id "SCR_GEN") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "NS") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'nv13"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'nv13"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'nv13"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'nv13"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'nv13"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "IMPLEMENTATION_DEFINED") Unknown)) (Unknown, (Just ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "IsSecureBelowEL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "SCRType") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "SCR_GEN") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HighestELUsingAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SCR") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SCR_EL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "SendEvent") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Unreachable") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_lit (L_aux (L_string "Unreachable reached") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_id "string"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "UsingAArch32") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "WaitForEvent") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "WaitForEvent") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "WaitForInterrupt") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "not_implemented_extern") Unknown) [(E_aux (E_lit (L_aux (L_string "WaitForInterrupt") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "uinteger") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "PAMax") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "pa_size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "ID_AA64MMFR0_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "ID_AA64MMFR0_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "PARange") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "pa_size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "pa_size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num 36) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 36))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "pa_size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num forty) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const forty))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "pa_size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num 42) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 42))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "pa_size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num 44) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 44))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "pa_size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num fortyeight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fortyeight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Unreachable") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "pa_size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "S1TranslationRegime") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "!=") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "IsSecure") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "ELUsingAArch32") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_Abort") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "vaddress") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "fault") Unknown)) (Unknown, (Just ((T_id "FaultRecord"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "FaultRecord")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_Abort") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "FaultRecord")]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_SPAlignmentFault") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_SPAlignmentFault") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_SoftwareBreakpoint") Unknown) (P_aux (P_id (Id_aux (Id "immediate") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_SoftwareBreakpoint") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_TakeReset") Unknown) (P_aux (P_id (Id_aux (Id "cold_reset") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "HighestELUsingAArch32") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_nRW") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "PSTATE_nRW")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "PSTATE_nRW")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "CurrentEL")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_field (LEXP_aux (LEXP_id (Id_aux (Id "SCR_EL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "NS") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "CurrentEL")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "CurrentEL")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_ResetControlRegisters") Unknown) [(E_aux (E_id (Id_aux (Id "cold_reset") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_SP") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SPSel")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_DAIF") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_SS") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_var "'nv2"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_IL") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_ResetGeneralRegisters") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_ResetSIMDFPRegisters") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_ResetSpecialRegisters") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "ResetExternalDebugRegisters") Unknown) [(E_aux (E_id (Id_aux (Id "cold_reset") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "rv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "rv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "RVBAR_EL3") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "RVBAR_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "rv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "RVBAR_EL2") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "RVBAR_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "rv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "RVBAR_EL1") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "RVBAR_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assert (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "IsZero") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "rv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtythree) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "PAMax") Unknown) []) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv26"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv26")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "IsZero") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "rv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv21")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv20"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv20")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_lit (L_aux (L_string "reset vector not correctly aligned") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_id "string"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "BranchTo") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "rv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "BranchType_UNKNOWN") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_abbrev (T_id "boolean") (T_id "bit")) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_CallHypervisor") Unknown) (P_aux (P_id (Id_aux (Id "immediate") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_CallHypervisor") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_CallSecureMonitor") Unknown) (P_aux (P_id (Id_aux (Id "immediate") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_CallSecureMonitor") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_CallSupervisor") Unknown) (P_aux (P_id (Id_aux (Id "immediate") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_CallSupervisor") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_CheckForSMCTrap") Unknown) (P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "route_to_el2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "IsSecure") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv249")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv251")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv246")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv248")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "HCR_EL2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "HCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TSC") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv237")); (T_arg_nexp (Ne_var "'nv236"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv237")); (T_arg_nexp (Ne_var "'nv236"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv237")); (T_arg_nexp (Ne_var "'nv236"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv237")); (T_arg_nexp (Ne_var "'nv236"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv237")); (T_arg_nexp (Ne_var "'nv236"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "route_to_el2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_CheckForSMCTrap route_to_el2") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_CheckForWFxTrap") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "target_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "is_wfe") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "target_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "trap") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "trap") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_if (E_aux (E_id (Id_aux (Id "is_wfe") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "SCTLR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCTLR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "nTWE") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "SCTLR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCTLR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "nTWI") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv20")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "trap") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_if (E_aux (E_id (Id_aux (Id "is_wfe") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "HCR_EL2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "HCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TWE") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "HCR_EL2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "HCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TWI") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "trap") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_if (E_aux (E_id (Id_aux (Id "is_wfe") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "SCR_EL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TWE") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "SCR_EL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "TWI") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "trap") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_WFxTrap") Unknown) [(E_aux (E_id (Id_aux (Id "target_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "is_wfe") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_SystemRegisterTrap") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "target_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "dir") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_SystemRegisterTrap") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_UndefinedFault") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_UndefinedFault") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_WFxTrap") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "target_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "is_wfe") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_WFxTrap") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "FaultRecord") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_CreateFaultRecord") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "type") Unknown)) (Unknown, (Just ((T_id "Fault"), (Tag_enum 19), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "ipaddress") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "level") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "write") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "extflag") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "s2fs1walk") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "Fault"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_id "bit"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "FaultRecord") Unknown)) Unknown) (Id_aux (Id "fault") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "FaultRecord"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_record (FES_aux (FES_Fexps [(FE_aux (FE_Fexp (Id_aux (Id "type") Unknown) (E_aux (E_id (Id_aux (Id "type") Unknown)) (Unknown, (Just ((T_id "Fault"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "Fault"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "domain") Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "debugmoe") Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "ipaddress") Unknown) (E_aux (E_id (Id_aux (Id "ipaddress") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "level") Unknown) (E_aux (E_id (Id_aux (Id "level") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "acctype") Unknown) (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "AccType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "write") Unknown) (E_aux (E_id (Id_aux (Id "write") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "extflag") Unknown) (E_aux (E_id (Id_aux (Id "extflag") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "secondstage") Unknown) (E_aux (E_id (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "s2fs1walk") Unknown) (E_aux (E_id (Id_aux (Id "s2fs1walk") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown, (Just ((T_id "FaultRecord"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "fault") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "FaultRecord"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "FaultRecord"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "Fault"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_id "bit"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_id "FaultRecord") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_ExclusiveMonitorsPass") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "AccType_ATOMIC") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Align") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_Abort") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_AlignmentFault") Unknown) [
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "FaultRecord"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "passed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_IsExclusiveVA") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "ProcessorID") Unknown) []) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "passed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AddressDescriptor") Unknown)) Unknown) (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_TranslateAddress") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "IsFault") Unknown) [(E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_Abort") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "fault") Unknown)) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "passed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "IsExclusiveLocal") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "ProcessorID") Unknown) []) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "passed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "ClearExclusiveLocal") Unknown) [
+ (E_aux (E_app (Id_aux (Id "ProcessorID") Unknown) []) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_field (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "memattrs") Unknown)) (Unknown, (Just ((T_id "MemoryAttributes"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "shareable") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "passed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "IsExclusiveGlobal") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "ProcessorID") Unknown) []) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "passed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_IsExclusiveVA") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "processorid") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "The model does not implement the exclusive monitors explicitly.") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_MarkExclusiveVA") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "processorid") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "The model does not implement the exclusive monitors explicitly.") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_SetExclusiveMonitors") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "AccType_ATOMIC") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Align") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AddressDescriptor") Unknown)) Unknown) (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_TranslateAddress") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "IsFault") Unknown) [(E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_field (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "memattrs") Unknown)) (Unknown, (Just ((T_id "MemoryAttributes"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "shareable") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "MarkExclusiveGlobal") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "ProcessorID") Unknown) []) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "MarkExclusiveLocal") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "ProcessorID") Unknown) []) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_MarkExclusiveVA") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "ProcessorID") Unknown) []) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_CheckAlignment") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Align") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "A") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_field (E_aux (E_app (Id_aux (Id "SCTLR'") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "A") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "AccType_ATOMIC") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "AccType_ORDERED") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "A") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv250")); (T_arg_nexp (Ne_var "'nv249"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv250")); (T_arg_nexp (Ne_var "'nv249"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv250")); (T_arg_nexp (Ne_var "'nv249"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv250")); (T_arg_nexp (Ne_var "'nv249"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv250")); (T_arg_nexp (Ne_var "'nv249"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_Abort") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_AlignmentFault") Unknown) [
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "FaultRecord"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "read_buffer_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_rMemSingle") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "wasaligned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "read_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "bool") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'nv3")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Align") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv5")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv5")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight)))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AddressDescriptor") Unknown)) Unknown) (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_TranslateAddress") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wasaligned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "IsFault") Unknown) [(E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_Abort") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "fault") Unknown)) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "_rMem") Unknown) [(E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "read_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "bool") (T_id "bit"))]) (T_id "read_buffer_type") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "write_buffer_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_wMemSingle") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "wasaligned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "write_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "bool") (T_id "bit")); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'nv3")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Align") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv5")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv5")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AddressDescriptor") Unknown)) Unknown) (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_TranslateAddress") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wasaligned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "IsFault") Unknown) [(E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_Abort") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "fault") Unknown)) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_field (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "memattrs") Unknown)) (Unknown, (Just ((T_id "MemoryAttributes"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "shareable") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ClearExclusiveByAddress") Unknown) [
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "paddress") Unknown)) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "ProcessorID") Unknown) []) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "_wMem") Unknown) [(E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "memaddrdesc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv6") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv6") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "write_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "bool") (T_id "bit")); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "write_buffer_type") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "CheckSPAlignment") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "sp") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rSP") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bool") Unknown)) Unknown) (Id_aux (Id "stack_align_check") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "stack_align_check") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "SCTLR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCTLR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "SA0") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_var "'nv17"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_var "'nv17"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_var "'nv17"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_var "'nv17"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_var "'nv17"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "stack_align_check") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_field (E_aux (E_app (Id_aux (Id "SCTLR'") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "SA") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'nv32"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'nv32"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'nv32"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'nv32"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'nv32"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "stack_align_check") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "sp") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv42")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Align") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "sp") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num sixteen) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixteen))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv44")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_SPAlignmentFault") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "read_buffer_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rMem'") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "read_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "bool") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "read_buffer_type") Unknown)) Unknown) (Id_aux (Id "read_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_CheckAlignment") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "atomic") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "AccType_VEC") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "AccType_VECSTREAM") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "atomic") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assert (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id ">") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "gt")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "read_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_rMemSingle") Unknown) [
+ (E_aux (E_id (Id_aux (Id "read_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_for (Id_aux (Id "i") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv249") (Ne_var "'nv250")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Ord_aux Ord_inc Unknown)
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "read_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_rMemSingle") Unknown) [
+ (E_aux (E_id (Id_aux (Id "read_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv285")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_var "'nv243"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv285")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown))))) ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "read_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_rMemSingle") Unknown) [
+ (E_aux (E_id (Id_aux (Id "read_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "read_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "read_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_abbrev (T_id "bool") (T_id "bit"))]) (T_id "read_buffer_type") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "read_buffer_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rMem") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "read_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rMem'") Unknown) [(E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "read_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType")]) (T_id "read_buffer_type") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "read_buffer_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rMem_exclusive") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "read_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rMem'") Unknown) [(E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "read_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType")]) (T_id "read_buffer_type") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "write_buffer_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "wMem'") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "write_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "bool") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "write_buffer_type") Unknown)) Unknown) (Id_aux (Id "write_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant eight) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "value'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "BigEndian") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "value'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "BigEndianReverse") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_CheckAlignment") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "atomic") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "AccType_VEC") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "AccType_VECSTREAM") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bool") Unknown)) Unknown) (Id_aux (Id "exclusiveSuccess") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "atomic") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id ">") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "gt")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "write_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_wMemSingle") Unknown) [
+ (E_aux (E_id (Id_aux (Id "write_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num seven) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const seven))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_mult (Ne_var "'nv242") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv242") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv242") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_for (Id_aux (Id "i") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv255") (Ne_var "'nv256")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Ord_aux Ord_inc Unknown)
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "write_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_wMemSingle") Unknown) [
+ (E_aux (E_id (Id_aux (Id "write_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv376")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_var "'nv249"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv376")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_var "'nv249"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv337") (Ne_var "'nv338")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num seven) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const seven))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv307"); (Ne_var "'nv308")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_var "'nv249"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv353") (Ne_var "'nv354")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv285")); (T_arg_nexp (Ne_mult (Ne_var "'nv281") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv281") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv281") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown))))) ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "write_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_wMemSingle") Unknown) [
+ (E_aux (E_id (Id_aux (Id "write_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "aligned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "exclusive") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv395") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv395") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "write_buffer'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "write_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "bool") (T_id "bit"))]) (T_id "write_buffer_type") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "write_buffer_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "wMem") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "write_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem'") Unknown) [(E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv1") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv1") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "write_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "write_buffer_type") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [1; 2; 4; 8; 16]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "write_buffer_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "wMem_exclusive") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "write_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem'") Unknown) [(E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv1") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv1") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "write_buffer_type"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])); (T_id "AccType"); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'N") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'N") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "write_buffer_type") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_ResetGeneralRegisters") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_for (Id_aux (Id "i") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num thirty) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirty))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Ord_aux Ord_inc Unknown)
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirty))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_ResetSIMDFPRegisters") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_for (Id_aux (Id "i") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Ord_aux Ord_inc Unknown)
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wV") Unknown) [(E_aux (E_id (Id_aux (Id "i") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num onetwentyeight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyeight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const onetwentyeight); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_ResetSpecialRegisters") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SP_EL0") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SP_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SP_EL1") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SP_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SPSR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SPSR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSR_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SPSR_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "ELR_EL1") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "ELR_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "ELR_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SP_EL2") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SP_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SPSR_EL2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SPSR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSR_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SPSR_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "ELR_EL2") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "ELR_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "ELR_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "ELR_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SP_EL3") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SP_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SPSR_EL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SPSR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "SPSR_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SPSR_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "ELR_EL3") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "ELR_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "ELR_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "ELR_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HaveAArch32EL") Unknown) [(E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SPSR_fiq") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SPSR_irq") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SPSR_abt") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SPSR_und") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "DLR_EL0") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "DSPSR_EL0") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rPC") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "_PC") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "_PC")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "wSP") Unknown) (P_aux (P_tup [(P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "unit"); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "PSTATE_SP") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SP_EL0") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SP_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv20")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SP_EL0") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SP_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv25")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SP_EL1") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SP_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SP_EL2") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SP_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "SP_EL3") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SP_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assert (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "unit"); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rSP") Unknown) (P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "PSTATE_SP") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "SP_EL0") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv20")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "SP_EL0") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv26")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv27")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "SP_EL1") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "SP_EL2") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "pstate_el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv41")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "SP_EL3") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "SP_EL3") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "SP_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64; 128]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "wV") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_vector
+ (LEXP_aux (LEXP_id (Id_aux (Id "_V") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const 33)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num onetwentyeight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyeight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const onetwentyeight); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64; 128]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rV") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [(E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown)
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "_V") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const 33)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64; 128]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rVpart") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_tup [(T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))); (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "part") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))); (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "part") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown)
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "_V") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const 33)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv39")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv39"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "_V") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const 33)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num onetwentyseven) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyseven))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))); (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64; 128]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "wVpart") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "part") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))); (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "part") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_vector
+ (LEXP_aux (LEXP_id (Id_aux (Id "_V") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const 33)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num onetwentyeight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyeight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const onetwentyeight); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv35")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv35"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_vector_range
+ (LEXP_aux (LEXP_vector
+ (LEXP_aux (LEXP_id (Id_aux (Id "_V") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const 33)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num onetwentyseven) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyseven))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_minus (Nexp_aux (Nexp_constant onetwentyseven) Unknown) (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown) (Nexp_aux (Nexp_constant one) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "SIMD_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))); (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "wX") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_vector
+ (LEXP_aux (LEXP_id (Id_aux (Id "_R") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rX") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "mask") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown)
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "_R") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "mask")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [(E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rELR") Unknown) (P_aux (P_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "r") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "r") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "ELR_EL1") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "ELR_EL1")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "r") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "ELR_EL2") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "ELR_EL2")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "r") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "ELR_EL3") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "ELR_EL3")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Unreachable") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "r") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "rELR'") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_var "'nv1")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "!=") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'nv1")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "rELR") Unknown) [(E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "SCTLR_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "SCTLR") Unknown) (P_aux (P_id (Id_aux (Id "regime") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "regime") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SCTLR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCTLR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "regime") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SCTLR_EL2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "regime") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SCTLR_EL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_lit (L_aux (L_string "SCTLR_type unreachable") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_id "string"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "SCTLR_EL1") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCTLR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "SCTLR_EL1_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "SCTLR_type") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "SCTLR'") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SCTLR") Unknown) [(E_aux (E_app (Id_aux (Id "S1TranslationRegime") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_abbrev (T_id "SCTLR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "boolean") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_CheckUnallocatedSystemAccess") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "read") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "read") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "<") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "lt_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (T_abbrev (T_id "boolean") (T_id "bit")) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "CheckSystemAccess") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "read") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "unallocated") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "need_secure") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "min_EL") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "min_EL") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "min_EL") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "min_EL") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "min_EL") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "min_EL") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "min_EL") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "need_secure") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "<") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "min_EL") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "lt_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "need_secure") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_app (Id_aux (Id "IsSecure") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "AArch64_CheckUnallocatedSystemAccess") Unknown) [
+ (E_aux (E_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "read") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "bit")]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "SysOp_R") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "SysOp_R") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "SysOp_W") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "SysOp_W") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "System_Get") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "NZCV") Unknown)) (Unknown, (Just ((T_abbrev (T_id "NZCV_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const one))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "DAIF") Unknown)) (Unknown, (Just ((T_abbrev (T_id "DAIF_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num 13) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 13))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const 13))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const two))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "TPIDR_EL0") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TPIDR_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "System_Put") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "NZCV") Unknown)) (Unknown, (Just ((T_abbrev (T_id "NZCV_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "NZCV")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const one))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "DAIF") Unknown)) (Unknown, (Just ((T_abbrev (T_id "DAIF_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num 13) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 13))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const 13))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])); (T_app "atom" (T_args [(T_arg_nexp (Ne_const two))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "TPIDR_EL0") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TPIDR_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtythree) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "TPIDR_EL0")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_ExceptionReturn") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "new_pc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "spsr") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "AArch64_ExceptionReturn") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "ExtendType") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "DecodeRegExtend") Unknown) (P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ExtendType_UXTB") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ExtendType_UXTH") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ExtendType_UXTW") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ExtendType_UXTX") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ExtendType_SXTB") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ExtendType_SXTH") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ExtendType_SXTW") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ExtendType_SXTX") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "ExtendType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_id "ExtendType") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'N") Unknown) [8; 16; 32; 64]) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_ge (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant zero) Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_bounded_le (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown) (Nexp_aux (Nexp_constant four) Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "ExtendType") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'S") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "ExtendReg") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_id "ExtendType"); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ExtendReg") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_id "ExtendType"); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_reg") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "type") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum eight), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_id "ExtendType"); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_reg") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "type") Unknown)) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ExtendType_SXTB") Unknown) []) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ExtendType_SXTH") Unknown) []) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixteen) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixteen))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ExtendType_SXTW") Unknown) []) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ExtendType_SXTX") Unknown) []) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ExtendType_UXTB") Unknown) []) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ExtendType_UXTH") Unknown) []) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixteen) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixteen))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ExtendType_UXTW") Unknown) []) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ExtendType_UXTX") Unknown) []) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "uMin") Unknown) [(E_aux (E_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv9") (Ne_var "'nv10")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Extend") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv50") (Ne_var "'nv51")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv46")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv46") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv46") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [(E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv46") (Ne_const zero)); (Ne_const one)]); (Ne_var "'S")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv46") (Ne_const zero)); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv38"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv38")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_id "ExtendType"); (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'S"))]))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'E") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "DecodeBitMasks") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_id "bit"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'E") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'E") Unknown) [2; 4; 8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'M") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "DecodeBitMasks") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "'M") Unknown)) (Unknown, (Just ((T_tup [(T_id "bit"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "immN") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "immr") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "immediate") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "bit"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "M") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'M") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "levels") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num six) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const six))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown)]) Unknown) (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "HighestSetBit") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "immN") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv10")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const one); (Ne_const six)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_const six)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv6"); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const (zero - 1))]))])))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const (zero - 1))]))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_lit (L_aux (L_string "DecodeBitMasks: HighestSetBit returned None") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_id "string"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "Some") Unknown) [(P_aux (P_id (Id_aux (Id "c") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const (zero - 1))]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const (zero - 1))]))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "c") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const (zero - 1))]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const (zero - 1))]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const (zero - 1))]))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "<") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "lt")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assert (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "M") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id ">=") Unknown)
+ (E_aux (E_app (Id_aux (Id "lsl") Unknown) [
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv24") (Ne_exp (Ne_var "'nv25"))))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "gteq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "levels") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num six) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const six))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "^^") Unknown) (E_aux (E_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_mult (Ne_const one) (Ne_var "'nv32"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "duplicate_bits")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv32"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv32")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "immediate") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "levels") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_and")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv46")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "levels") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv48")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "levels") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_and")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "R") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "immr") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "levels") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_and")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "diff") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "R") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv59")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "minus_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'E") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "esize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'E"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "lsl") Unknown) [
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv81") (Ne_exp (Ne_var "'nv82"))))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "diff") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "len") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv90") (Ne_var "'nv91")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'E") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'E") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "welem") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_id (Id_aux (Id "esize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'E"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv154")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "^^") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv172")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv174")); (T_arg_nexp (Ne_add [(Ne_var "'nv174"); (Ne_exp (Ne_const six))]))])), (Tag_extern (Just "add_vec_range_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv154")); (T_arg_nexp (Ne_mult (Ne_const one) (Ne_var "'nv152"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "duplicate_bits")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv152"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv152")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'E") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'E") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "telem") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_id (Id_aux (Id "esize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'E"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv223")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "^^") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv241")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv243")); (T_arg_nexp (Ne_add [(Ne_var "'nv243"); (Ne_exp (Ne_const six))]))])), (Tag_extern (Just "add_vec_range_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv223")); (T_arg_nexp (Ne_mult (Ne_const one) (Ne_var "'nv221"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "duplicate_bits")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv221"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv221")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "wmask") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Replicate") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'M") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ROR") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "welem") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "unsigned") Unknown) [(E_aux (E_id (Id_aux (Id "R") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])), (Tag_extern (Just "unsigned")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "tmask") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Replicate") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'M") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'M"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "telem") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_tuple [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "wmask") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "tmask") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "bit"); (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "ShiftType") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "DecodeShift") Unknown) (P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "unsigned") Unknown) [(E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const four))])), (Tag_extern (Just "unsigned")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ShiftType_LSL") Unknown)) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ShiftType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ShiftType_LSR") Unknown)) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ShiftType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ShiftType_ASR") Unknown)) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ShiftType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "ShiftType_ROR") Unknown)) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "ShiftType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "ShiftType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "ShiftType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_id "ShiftType") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "implicit") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "ShiftType") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "nat") Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "ShiftReg") Unknown))
+ (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_id "ShiftType"); (T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "ShiftReg") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_id "ShiftType"); (T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_reg") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "type") Unknown)) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "amount") Unknown)) (Unknown, (Just ((T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_id "ShiftType"); (T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'N") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "'N") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'N"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_reg") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "type") Unknown)) (Unknown, (Just ((T_id "ShiftType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ShiftType_LSL") Unknown) []) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "LSL") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "amount") Unknown)) (Unknown, (Just ((T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ShiftType_LSR") Unknown) []) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "LSR") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "amount") Unknown)) (Unknown, (Just ((T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ShiftType_ASR") Unknown) []) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ASR") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "amount") Unknown)) (Unknown, (Just ((T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "ShiftType_ROR") Unknown) []) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ROR") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "amount") Unknown)) (Unknown, (Just ((T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))); (T_id "ShiftType"); (T_abbrev (T_id "nat") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "Prefetch") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "prfop") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "PrefetchHint") Unknown)) Unknown) (Id_aux (Id "hint") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "PrefetchHint"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "Prefetch_READ") Unknown)) (Unknown, (Just ((T_id "PrefetchHint"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "PrefetchHint"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "Prefetch_WRITE") Unknown)) (Unknown, (Just ((T_id "PrefetchHint"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "PrefetchHint"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "Prefetch_EXEC") Unknown)) (Unknown, (Just ((T_id "PrefetchHint"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "PrefetchHint"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "PrefetchHint"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "stream") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bool") Unknown)) Unknown) (Id_aux (Id "returnv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "prfop") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const four) (Ne_const three)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "hint") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "PrefetchHint"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "Prefetch_READ") Unknown)) (Unknown, (Just ((T_id "PrefetchHint"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "hint") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "PrefetchHint"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "Prefetch_EXEC") Unknown)) (Unknown, (Just ((T_id "PrefetchHint"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "hint") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "PrefetchHint"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "Prefetch_WRITE") Unknown)) (Unknown, (Just ((T_id "PrefetchHint"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "returnv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "returnv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "bool") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "unsigned") Unknown) [
+ (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "prfop") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const two) (Ne_const one)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), (Tag_extern (Just "unsigned")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "stream") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "prfop") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_var "'nv28"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_var "'nv28"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_var "'nv28"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_var "'nv28"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_var "'nv28"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Hint_Prefetch") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "hint") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "PrefetchHint"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "stream") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]) (T_id "unit") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "FaultRecord") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_AlignmentFault") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fortyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fortyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "ipaddress") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num fortyeight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fortyeight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "level") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "extflag") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "is_one") Unknown) [(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "is_one")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "s2fs1walk") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "is_one") Unknown) [(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "is_one")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_CreateFaultRecord") Unknown) [
+ (E_aux (E_id (Id_aux (Id "Fault_Alignment") Unknown)) (Unknown, (Just ((T_id "Fault"), (Tag_enum 18), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "ipaddress") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "level") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "extflag") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "s2fs1walk") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_id "FaultRecord") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "FaultRecord") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_NoFault") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fortyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fortyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "ipaddress") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num fortyeight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fortyeight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "level") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "AccType_NORMAL") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "is_one") Unknown) [(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "is_one")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "extflag") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "is_one") Unknown) [(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "is_one")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "s2fs1walk") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_CreateFaultRecord") Unknown) [
+ (E_aux (E_id (Id_aux (Id "Fault_None") Unknown)) (Unknown, (Just ((T_id "Fault"), (Tag_enum 18), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "ipaddress") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "level") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "extflag") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "s2fs1walk") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_id "FaultRecord") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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 "AddressDescriptor") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "AArch64_TranslateAddress") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "vaddress") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "wasaligned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "Translation is not implemented, return same address as the virtual (no fault, normal, shareable, non-secure).") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AddressDescriptor") Unknown)) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_record (FES_aux (FES_Fexps [(FE_aux (FE_Fexp (Id_aux (Id "fault") Unknown)
+ (E_aux (E_app (Id_aux (Id "AArch64_NoFault") Unknown) []) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "FaultRecord"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "memattrs") Unknown) (E_aux (E_record (FES_aux (FES_Fexps [
+ (FE_aux (FE_Fexp (Id_aux (Id "type") Unknown) (E_aux (E_id (Id_aux (Id "MemType_Normal") Unknown)) (Unknown, (Just ((T_id "MemType"), (Tag_enum one), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "shareable") Unknown) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown, (Just ((T_id "MemoryAttributes"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemoryAttributes"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "paddress") Unknown) (E_aux (E_record (FES_aux (FES_Fexps [
+ (FE_aux (FE_Fexp (Id_aux (Id "physicaladdress") Unknown) (E_aux (E_id (Id_aux (Id "vaddress") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (FE_aux (FE_Fexp (Id_aux (Id "NS") Unknown) (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown, (Just ((T_id "FullAddress"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "FullAddress"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] false) (Unknown,Nothing))) (Unknown, (Just ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AddressDescriptor"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "AddressDescriptor"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "AccType"); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_id "AddressDescriptor") (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_type (TD_aux (TD_variant (Id_aux (Id "ast") Unknown) (Name_sect_aux Name_sect_none Unknown) (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) [
+ (Tu_aux (Tu_id (Id_aux (Id "Unallocated") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "ImplementationDefinedTestBeginEnd") Unknown)) Unknown);
+ (Tu_aux (Tu_id (Id_aux (Id "ImplementationDefinedStopFetching") Unknown)) Unknown);
+ (Tu_aux (Tu_id (Id_aux (Id "ImplementationDefinedThreadStart") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "TMStart") Unknown)) Unknown);
+ (Tu_aux (Tu_id (Id_aux (Id "TMCommit") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "TMAbort") Unknown)) Unknown);
+ (Tu_aux (Tu_id (Id_aux (Id "TMTest") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "CompareAndBranch") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "BranchConditional") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fifteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "GenerateExceptionEL1") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fifteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "GenerateExceptionEL2") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fifteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "GenerateExceptionEL3") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fifteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "DebugBreakpoint") Unknown)) Unknown);
+ (Tu_aux (Tu_id (Id_aux (Id "ExternalDebugBreakpoint") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "DebugSwitchToExceptionLevel") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "PSTATEField") Unknown)) Unknown)]) Unknown) (Id_aux (Id "MoveSystemImmediate") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_id (Id_aux (Id "SystemHintOp") Unknown)) Unknown) (Id_aux (Id "Hint") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "ClearExclusiveMonitor") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "MemBarrierOp") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "MBReqDomain") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "MBReqTypes") Unknown)) Unknown)]) Unknown) (Id_aux (Id "Barrier") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Id_aux (Id "System") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Id_aux (Id "MoveSystemRegister") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "TestBitAndBranch") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "BranchType") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "BranchImmediate") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "BranchType") Unknown)) Unknown)]) Unknown) (Id_aux (Id "BranchRegister") Unknown)) Unknown);
+ (Tu_aux (Tu_id (Id_aux (Id "ExceptionReturn") Unknown)) Unknown);
+ (Tu_aux (Tu_id (Id_aux (Id "DebugRestorePState") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "LoadLiteral") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "LoadStoreAcqExc") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "LoadStorePairNonTemp") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "LoadImmediate") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "ExtendType") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "LoadRegister") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "LoadStorePair") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "AddSubImmediate") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "BitfieldMove") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown)]) Unknown) (Id_aux (Id "ExtractRegister") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "LogicalOp") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "LogicalImmediate") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fifteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "MoveWideOp") Unknown)) Unknown)]) Unknown) (Id_aux (Id "MoveWide") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "Address") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "ExtendType") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant seven) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "AddSubExtendRegister") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "ShiftType") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "AddSubShiftedRegister") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Id_aux (Id "AddSubCarry") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "ConditionalCompareImmediate") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)]) Unknown) (Id_aux (Id "ConditionalCompareRegister") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Id_aux (Id "ConditionalSelect") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "RevOp") Unknown)) Unknown)]) Unknown) (Id_aux (Id "Reverse") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "CountOp") Unknown)) Unknown)]) Unknown) (Id_aux (Id "CountLeading") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Id_aux (Id "Division") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "ShiftType") Unknown)) Unknown)]) Unknown) (Id_aux (Id "Shift") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Id_aux (Id "CRC") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Id_aux (Id "MultiplyAddSub") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Id_aux (Id "MultiplyAddSubLong") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Id_aux (Id "MultiplyHigh") Unknown)) Unknown);
+ (Tu_aux (Tu_ty_id (Typ_aux (Typ_tup [(Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "LogicalOp") Unknown)) Unknown); (Typ_aux (Typ_id (Id_aux (Id "ShiftType") Unknown)) Unknown); (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown)]) Unknown); (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown)]) Unknown) (Id_aux (Id "LogicalShiftedRegister") Unknown)) Unknown);] false) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_barr Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_exmem Unknown); (BE_aux BE_escape Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "execute") Unknown))
+ (Unknown, (Just ((T_fn (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_barr Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_exmem Unknown); (BE_aux BE_escape Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeTMStart") Unknown) (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "TMStart") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_extern_no_rename (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") Unknown)) Unknown) (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "TMCommitEffect") Unknown))
+ (Unknown, (Just ((T_fn (T_id "unit") (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)), (Tag_extern Nothing), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeTMCommit") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "TMCommit") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeTMTest") Unknown) (P_aux (P_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "TMTest") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeTMAbort") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "R") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm5") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const five); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "TMAbort") Unknown) [
+ (E_aux (E_id (Id_aux (Id "R") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "imm5") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const five); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeCompareBranchImmediate") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm19") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 18)); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "iszero") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm19") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 18)); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const 19); (Ne_const two)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const 19); (Ne_const two)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv45"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv45")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "CompareAndBranch") Unknown) [
+ (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "iszero") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeConditionalBranchImmediate") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm19") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 18)); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const one); (Ne_add [(Ne_const four); (Ne_const seven)])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm19") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 18)); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const 19); (Ne_const two)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const 19); (Ne_const two)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv15"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv15")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "BranchConditional") Unknown) [
+ (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const one); (Ne_add [(Ne_const four); (Ne_const seven)])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "decodeExceptionGeneration") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeExceptionGeneration") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fifteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "GenerateExceptionEL1") Unknown) [(E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeExceptionGeneration") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fifteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "GenerateExceptionEL2") Unknown) [(E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeExceptionGeneration") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fifteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "GenerateExceptionEL3") Unknown) [(E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeExceptionGeneration") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fifteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "comment") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "DebugBreakpoint") Unknown) [(E_aux (E_id (Id_aux (Id "comment") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeExceptionGeneration") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "ExternalDebugBreakpoint") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeExceptionGeneration") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "LL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "target_level") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "LL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv72")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv74")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "DebugSwitchToExceptionLevel") Unknown) [(E_aux (E_id (Id_aux (Id "target_level") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "decodeSystem") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeSystem") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "PSTATEField") Unknown)) Unknown) (Id_aux (Id "field") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "PSTATEField"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "PSTATEField_DAIFSet") Unknown)) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "PSTATEField"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "PSTATEField_DAIFClr") Unknown)) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "PSTATEField"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "PSTATEField_SP") Unknown)) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "PSTATEField"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "PSTATEField"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const three); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const three); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "field") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "PSTATEField"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "PSTATEField_SP") Unknown)) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const three); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "field") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "PSTATEField"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "PSTATEField_DAIFSet") Unknown)) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const three); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "field") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "PSTATEField"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "PSTATEField_DAIFClr") Unknown)) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const three); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "MoveSystemImmediate") Unknown) [
+ (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "field") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "PSTATEField"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeSystem") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "SystemHintOp") Unknown)) Unknown) (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "SystemHintOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SystemHintOp_NOP") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SystemHintOp_YIELD") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SystemHintOp_WFE") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SystemHintOp_WFI") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SystemHintOp_SEV") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "SystemHintOp_SEVL") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const four); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const four); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "SystemHintOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "SystemHintOp_NOP") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const four); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "SystemHintOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "SystemHintOp_YIELD") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const four); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "SystemHintOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "SystemHintOp_WFE") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const four); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "SystemHintOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "SystemHintOp_WFI") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const four); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "SystemHintOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "SystemHintOp_SEV") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const four); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "SystemHintOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "SystemHintOp_SEVL") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const four); (Ne_const three)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "SystemHintOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "SystemHintOp_NOP") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Hint") Unknown) [(E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "SystemHintOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeSystem") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "unsigned") Unknown) [(E_aux (E_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), (Tag_extern (Just "unsigned")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "ClearExclusiveMonitor") Unknown) [(E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeSystem") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "MemBarrierOp") Unknown)) Unknown) (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemBarrierOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemBarrierOp_DSB") Unknown)) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemBarrierOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemBarrierOp_DMB") Unknown)) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemBarrierOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemBarrierOp_ISB") Unknown)) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemBarrierOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "MemBarrierOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "MBReqDomain") Unknown)) Unknown) (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqDomain"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MBReqDomain_Nonshareable") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MBReqDomain_InnerShareable") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MBReqDomain_OuterShareable") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MBReqDomain_FullSystem") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "MBReqTypes") Unknown)) Unknown) (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqTypes"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MBReqTypes_Reads") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MBReqTypes_Writes") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MBReqTypes_All") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemBarrierOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MemBarrierOp_DSB") Unknown)) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemBarrierOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MemBarrierOp_DMB") Unknown)) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemBarrierOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MemBarrierOp_ISB") Unknown)) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const three) (Ne_const two)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqDomain"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MBReqDomain_OuterShareable") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqDomain"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MBReqDomain_Nonshareable") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqDomain"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MBReqDomain_InnerShareable") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqDomain"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MBReqDomain_FullSystem") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const one) (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqTypes"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MBReqTypes_Reads") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqTypes"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MBReqTypes_Writes") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqTypes"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MBReqTypes_All") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const one) (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqTypes"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MBReqTypes_All") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqDomain"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MBReqDomain_FullSystem") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Barrier") Unknown) [
+ (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemBarrierOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqDomain"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MBReqTypes"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeSystem") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "CRn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv131")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv131")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "sys_op0") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "sys_op1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const three); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv147"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "sys_op2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const three); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv149"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "sys_crn") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "CRn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const four); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv151"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "sys_crm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const four); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv153"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "has_result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_var "'nv167"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_var "'nv167"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_var "'nv167"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_var "'nv167"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_var "'nv167"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "System") Unknown) [
+ (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op0") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crn") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "has_result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeSystem") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "o0") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "CRn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv172")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv172")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "sys_op0") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "o0") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv224"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv195"); (Ne_var "'nv196")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "sys_op1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "op1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const three); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv226"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "sys_op2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const three); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv228"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "sys_crn") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "CRn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const four); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv230"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "sys_crm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "CRm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const four); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv232"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "read") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv247")); (T_arg_nexp (Ne_var "'nv246"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv247")); (T_arg_nexp (Ne_var "'nv246"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv247")); (T_arg_nexp (Ne_var "'nv246"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv247")); (T_arg_nexp (Ne_var "'nv246"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv247")); (T_arg_nexp (Ne_var "'nv246"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "MoveSystemRegister") Unknown) [
+ (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op0") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crn") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "read") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "decodeImplementationDefined") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeImplementationDefined") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "isEnd") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "ImplementationDefinedTestBeginEnd") Unknown) [(E_aux (E_id (Id_aux (Id "isEnd") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeImplementationDefined") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "ImplementationDefinedStopFetching") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeImplementationDefined") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "ImplementationDefinedThreadStart") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeTestBranchImmediate") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "b5") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "b40") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm14") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 13)); (T_arg_nexp (Ne_const 14)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const 14); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "b5") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "bit_pos") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "b5") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "b40") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const one); (Ne_const five)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_const five)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv31"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv31")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv32"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "bit_val") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm14") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 13)); (T_arg_nexp (Ne_const 14)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_const 14)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv42")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const 14); (Ne_const two)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const 14); (Ne_const two)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv38"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv38")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "TestBitAndBranch") Unknown) [
+ (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "bit_pos") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "bit_val") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const 14); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeUnconditionalBranchImmediate") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm26") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 25)); (T_arg_nexp (Ne_const 26)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const five); (Ne_add [(Ne_const 26); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "BranchType") Unknown)) Unknown) (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "BranchType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "BranchType_CALL") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "BranchType_JMP") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm26") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 25)); (T_arg_nexp (Ne_const 26)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_const 26)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const 26); (Ne_const two)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const 26); (Ne_const two)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv26"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv26")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "BranchImmediate") Unknown) [
+ (E_aux (E_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "BranchType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const five); (Ne_add [(Ne_const 26); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "decodeUnconditionalBranchRegister") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeUnconditionalBranchRegister") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "BranchType") Unknown)) Unknown) (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "BranchType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "BranchType_CALL") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "BranchType_ERET") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "BranchType_DBGEXIT") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "BranchType_RET") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "BranchType_JMP") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "BranchType_EXCEPTION") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num six) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "BranchType_UNKNOWN") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "BranchType"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "BranchType_JMP") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "BranchType"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "BranchType_CALL") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "BranchType"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "BranchType_RET") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "BranchRegister") Unknown) [
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "BranchType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeUnconditionalBranchRegister") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "ExceptionReturn") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeUnconditionalBranchRegister") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "DebugRestorePState") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeAdvSIMDLoadStoreMultiStruct") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "decodeAdvSIMDLoadStoreMultiStruct") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Unallocated") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeAdvSIMDLoadStoreMultiStructPostIndexed") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "decodeAdvSIMDLoadStoreMultiStructPostIndexed") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Unallocated") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeAdvSIMDLoadStoreSingleStruct") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "decodeAdvSIMDLoadStoreSingleStruct") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Unallocated") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeAdvSIMDLoadStoreSingleStructPostIndexed") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "decodeAdvSIMDLoadStoreSingleStructPostIndexed") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Unallocated") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadRegisterLiteral") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm19") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 18)); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const five); (Ne_const two)])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown) (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MemOp_PREFETCH") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm19") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 18)); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const 19); (Ne_const two)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const 19); (Ne_const two)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv17"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv17")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv24") (Ne_var "'nv25")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "LoadLiteral") Unknown) [
+ (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const five); (Ne_const two)])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreExclusive") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "o2") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "o1") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rs") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "o0") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "s") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rs") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [
+ (E_aux (E_id (Id_aux (Id "o2") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "o1") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "o0") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv37")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "o2") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "o1") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv32")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "o1") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv93")); (T_arg_nexp (Ne_var "'nv92"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv93")); (T_arg_nexp (Ne_var "'nv92"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv93")); (T_arg_nexp (Ne_var "'nv92"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv93")); (T_arg_nexp (Ne_var "'nv92"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv93")); (T_arg_nexp (Ne_var "'nv92"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "o0") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "AccType_ORDERED") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "AccType_ATOMIC") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "o2") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv141")); (T_arg_nexp (Ne_var "'nv140"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv141")); (T_arg_nexp (Ne_var "'nv140"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv141")); (T_arg_nexp (Ne_var "'nv140"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv141")); (T_arg_nexp (Ne_var "'nv140"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv141")); (T_arg_nexp (Ne_var "'nv140"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "pair") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "o1") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv156")); (T_arg_nexp (Ne_var "'nv155"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv156")); (T_arg_nexp (Ne_var "'nv155"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv156")); (T_arg_nexp (Ne_var "'nv155"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv156")); (T_arg_nexp (Ne_var "'nv155"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv156")); (T_arg_nexp (Ne_var "'nv155"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown) (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_var "'nv170"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_var "'nv170"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_var "'nv170"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_var "'nv170"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_var "'nv170"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv177")); (T_arg_nexp (Ne_var "'nv176"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "lsl") Unknown) [(E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv175"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv172") (Ne_exp (Ne_var "'nv173"))))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv177")); (T_arg_nexp (Ne_var "'nv176"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "pair") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv177")); (T_arg_nexp (Ne_var "'nv176"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv193") (Ne_var "'nv194")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv177")); (T_arg_nexp (Ne_var "'nv176"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "LoadStoreAcqExc") Unknown) [
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "s") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "pair") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv177")); (T_arg_nexp (Ne_var "'nv176"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreNoAllocatePairOffset") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm7") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "AccType_STREAM") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown) (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv54")); (T_arg_nexp (Ne_var "'nv53"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv54")); (T_arg_nexp (Ne_var "'nv53"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv54")); (T_arg_nexp (Ne_var "'nv53"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv54")); (T_arg_nexp (Ne_var "'nv53"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv54")); (T_arg_nexp (Ne_var "'nv53"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv96"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv67"); (Ne_var "'nv68")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "lsl") Unknown) [(E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv100") (Ne_exp (Ne_var "'nv101"))))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "LSL") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm7") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const seven); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "LoadStorePairNonTemp") Unknown) [
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "sharedDecodeLoadImmediate") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "prefetchAllowed") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "AccType"); (T_abbrev (T_id "bool") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown) (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_PREFETCH") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv44")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv46")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "prefetchAllowed") Unknown)) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign
+ (LEXP_aux (LEXP_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MemOp_PREFETCH") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv118")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv120")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "lsl") Unknown) [(E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv142") (Ne_exp (Ne_var "'nv143"))))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "LoadImmediate") Unknown) [
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_id "AccType"); (T_abbrev (T_id "bool") (T_id "bit"))]) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreRegisterImmediatePostIndexed") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm9") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv25"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm9") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const 9); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "sharedDecodeLoadImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "AccType_NORMAL") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreRegisterImmediatePreIndexed") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm9") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv25"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm9") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const 9); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "sharedDecodeLoadImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "AccType_NORMAL") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "sharedDecodeLoadRegister") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "extend_type") Unknown)) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_id "ExtendType"); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "AccType_NORMAL") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown) (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_PREFETCH") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv44")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv46")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MemOp_PREFETCH") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv118")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv120")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "lsl") Unknown) [(E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv142") (Ne_exp (Ne_var "'nv143"))))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "LoadRegister") Unknown) [
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "extend_type") Unknown)) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))); (T_id "ExtendType"); (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))]) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreRegisterRegisterOffset") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv27")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "option_v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv27")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv29"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "option_v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'nv46"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'nv46"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'nv46"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'nv46"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'nv46"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "ExtendType") Unknown)) Unknown) (Id_aux (Id "extend_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "ExtendType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DecodeRegExtend") Unknown) [(E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "option_v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "ExtendType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv65")); (T_arg_nexp (Ne_var "'nv64"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv65")); (T_arg_nexp (Ne_var "'nv64"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv65")); (T_arg_nexp (Ne_var "'nv64"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv65")); (T_arg_nexp (Ne_var "'nv64"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv65")); (T_arg_nexp (Ne_var "'nv64"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "sharedDecodeLoadRegister") Unknown) [
+ (E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv27")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "extend_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "ExtendType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreRegisterUnprivileged") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm9") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv25"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm9") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const 9); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "sharedDecodeLoadImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "AccType_UNPRIV") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreRegisterUnscaledImmediate") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm9") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv25"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm9") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const 9); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "sharedDecodeLoadImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "AccType_NORMAL") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreRegisterUnsignedImmediate") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm12") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 11)); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const 12); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv21"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "LSL") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm12") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 11)); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const 12); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "sharedDecodeLoadImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "AccType_NORMAL") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const 12); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "sharedDecodeLoadStorePair") Unknown) (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_var "'nv15"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm7") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv110"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv110")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_var "'nv15"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv110"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv110")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit"))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "AccType") Unknown)) Unknown) (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "AccType_NORMAL") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "MemOp") Unknown)) Unknown) (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_var "'nv15"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [
+ (E_aux (E_if
+ (E_aux (E_app (Id_aux (Id "is_one") Unknown) [(E_aux (E_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_var "'nv15"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "is_one")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv37")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv39")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv31")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv60")); (T_arg_nexp (Ne_var "'nv59"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv60")); (T_arg_nexp (Ne_var "'nv59"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv60")); (T_arg_nexp (Ne_var "'nv59"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv60")); (T_arg_nexp (Ne_var "'nv59"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv60")); (T_arg_nexp (Ne_var "'nv59"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv102"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv73"); (Ne_var "'nv74")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "lsl") Unknown) [(E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv106") (Ne_exp (Ne_var "'nv107"))))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "LSL") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "imm7") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv110"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv110")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "LoadStorePair") Unknown) [
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "AccType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MemOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_tup [(T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_var "'nv15"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv110"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv110")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "reg_size") (T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))); (T_abbrev (T_id "boolean") (T_id "bit")); (T_abbrev (T_id "boolean") (T_id "bit"))]) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreRegisterPairOffset") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm7") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "sharedDecodeLoadStorePair") Unknown) [
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm7") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const seven); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreRegisterPairPostIndexed") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm7") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "sharedDecodeLoadStorePair") Unknown) [
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm7") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const seven); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadStoreRegisterPairPreIndexed") Unknown) (P_aux (P_vector_concat [(P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm7") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "sharedDecodeLoadStorePair") Unknown) [
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "L") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm7") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const seven); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "Rt2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeAddSubtractImmediate") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm12") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 11)); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const 12); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm12") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 11)); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const 12); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm12") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 11)); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv79")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "^^") Unknown) (E_aux (E_lit (L_aux (L_num 12) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 12))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv79")); (T_arg_nexp (Ne_mult (Ne_const one) (Ne_var "'nv77"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "duplicate_bits")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv72")); (T_arg_nexp (Ne_var "'nv77")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const 12); (Ne_var "'nv77")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const 12); (Ne_var "'nv77")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv68"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv68")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "AddSubImmediate") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const 12); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeBitfield") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "immr") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "inzero") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "extend") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "R") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "inzero") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "extend") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "inzero") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "extend") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "inzero") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "extend") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_var "'nv535"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_var "'nv535"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_var "'nv535"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_var "'nv535"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_var "'nv535"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv521")); (T_arg_nexp (Ne_var "'nv520"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv521")); (T_arg_nexp (Ne_var "'nv520"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv521")); (T_arg_nexp (Ne_var "'nv520"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv521")); (T_arg_nexp (Ne_var "'nv520"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv521")); (T_arg_nexp (Ne_var "'nv520"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "immr") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv503")); (T_arg_nexp (Ne_var "'nv502"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv503")); (T_arg_nexp (Ne_var "'nv502"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv503")); (T_arg_nexp (Ne_var "'nv502"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv503")); (T_arg_nexp (Ne_var "'nv502"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv503")); (T_arg_nexp (Ne_var "'nv502"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv482")); (T_arg_nexp (Ne_var "'nv481"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv482")); (T_arg_nexp (Ne_var "'nv481"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv482")); (T_arg_nexp (Ne_var "'nv481"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv482")); (T_arg_nexp (Ne_var "'nv481"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv482")); (T_arg_nexp (Ne_var "'nv481"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "R") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "immr") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv538"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv540"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "wmask") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "tmask") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DecodeBitMasks") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "immr") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "BitfieldMove") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "inzero") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "extend") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "R") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "wmask") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "tmask") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeExtract") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "lsb") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "lsb") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv123"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "ExtractRegister") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "lsb") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLogicalImmediate") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "immr") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "LogicalOp") Unknown)) Unknown) (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LogicalOp_AND") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LogicalOp_AND") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LogicalOp_ORR") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LogicalOp_EOR") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LogicalOp_AND") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "DecodeBitMasks") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "imms") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "immr") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "LogicalImmediate") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeMoveWideImmediate") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "hw") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const two); (Ne_add [(Ne_const sixteen); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant fifteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixteen) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "imm16") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "pos") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "MoveWideOp") Unknown)) Unknown) (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MoveWideOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MoveWideOp_N") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MoveWideOp_Z") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "MoveWideOp_K") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MoveWideOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MoveWideOp_N") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MoveWideOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MoveWideOp_Z") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MoveWideOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "MoveWideOp_K") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv104")); (T_arg_nexp (Ne_var "'nv103"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv104")); (T_arg_nexp (Ne_var "'nv103"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv104")); (T_arg_nexp (Ne_var "'nv103"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv104")); (T_arg_nexp (Ne_var "'nv103"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv104")); (T_arg_nexp (Ne_var "'nv103"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "hw") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "pos") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "hw") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv108")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const two); (Ne_const four)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_const four)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv105"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv105")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv106"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "MoveWide") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "pos") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "MoveWideOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const two); (Ne_add [(Ne_const sixteen); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodePCRelAddressing") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "immlo") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "immhi") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 18)); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "page") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "page") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "immhi") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 18)); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv32")); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "immlo") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv45")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "^^") Unknown) (E_aux (E_lit (L_aux (L_num 12) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 12))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv45")); (T_arg_nexp (Ne_mult (Ne_const one) (Ne_var "'nv43"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "duplicate_bits")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv43")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const two); (Ne_var "'nv43")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_var "'nv43")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const 19); (Ne_var "'nv33")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const 19); (Ne_var "'nv33")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv30"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv30")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "immhi") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 18)); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const 19)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "immlo") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const 19); (Ne_const two)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const 19); (Ne_const two)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv47"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'nv47")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Address") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "page") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeAddSubtractExtendedRegister") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "option_v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const three); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_var "'nv54"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_var "'nv54"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_var "'nv54"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_var "'nv54"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_var "'nv54"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_var "'nv69"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_var "'nv69"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_var "'nv69"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_var "'nv69"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_var "'nv69"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "ExtendType") Unknown)) Unknown) (Id_aux (Id "extend_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "ExtendType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DecodeRegExtend") Unknown) [(E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "option_v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "ExtendType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant seven) Unknown)) Unknown)]) Unknown) (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const seven))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const three); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv72"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const seven))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id ">") Unknown) (E_aux (E_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "gt")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "AddSubExtendRegister") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "extend_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "ExtendType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const seven))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const three); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeAddSubtractShiftedRegister") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm6") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv69")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv71")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv145")); (T_arg_nexp (Ne_var "'nv144"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv145")); (T_arg_nexp (Ne_var "'nv144"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv145")); (T_arg_nexp (Ne_var "'nv144"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv145")); (T_arg_nexp (Ne_var "'nv144"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv145")); (T_arg_nexp (Ne_var "'nv144"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "imm6") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "ShiftType") Unknown)) Unknown) (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "ShiftType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DecodeShift") Unknown) [(E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "ShiftType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown)]) Unknown) (Id_aux (Id "shift_amount") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm6") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv147"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "AddSubShiftedRegister") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "ShiftType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift_amount") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeAddSubtractWithCarry") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const eight); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "AddSubCarry") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const eight); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeConditionalCompareImmediate") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm5") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "flags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm5") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const five); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "ConditionalCompareImmediate") Unknown) [
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "flags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeConditionalCompareRegister") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "flags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "ConditionalCompareRegister") Unknown) [
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "flags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeConditionalSelect") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "o2") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "_cond") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "else_inv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'nv50"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'nv50"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'nv50"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'nv50"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'nv50"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "else_inc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "o2") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "ConditionalSelect") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "else_inv") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "else_inc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "decodeData1Source") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeData1Source") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "RevOp") Unknown)) Unknown) (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "RevOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "RevOp_RBIT") Unknown)) (Unknown, (Just ((T_id "RevOp"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "RevOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "RevOp_REV16") Unknown)) (Unknown, (Just ((T_id "RevOp"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "RevOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "RevOp_REV32") Unknown)) (Unknown, (Just ((T_id "RevOp"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "RevOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "RevOp_REV64") Unknown)) (Unknown, (Just ((T_id "RevOp"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "RevOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "RevOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "RevOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "RevOp_RBIT") Unknown)) (Unknown, (Just ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "RevOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "RevOp_REV16") Unknown)) (Unknown, (Just ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "RevOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "RevOp_REV32") Unknown)) (Unknown, (Just ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "RevOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "RevOp_REV64") Unknown)) (Unknown, (Just ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Reverse") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "RevOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeData1Source") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "CountOp") Unknown)) Unknown) (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "CountOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_var "'nv98"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_var "'nv98"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_var "'nv98"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_var "'nv98"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_var "'nv98"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "CountOp_CLZ") Unknown)) (Unknown, (Just ((T_id "CountOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "CountOp_CLS") Unknown)) (Unknown, (Just ((T_id "CountOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "CountOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "CountLeading") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "CountOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "decodeData2Source") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeData2Source") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "o1") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "o1") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Division") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeData2Source") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv61")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv57")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv61")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "ShiftType") Unknown)) Unknown) (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "ShiftType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DecodeShift") Unknown) [(E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "op2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv57")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "ShiftType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Shift") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "ShiftType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeData2Source") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv98")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "C") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sz") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv90")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv90")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv98")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv144")); (T_arg_nexp (Ne_var "'nv143"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv144")); (T_arg_nexp (Ne_var "'nv143"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv144")); (T_arg_nexp (Ne_var "'nv143"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv144")); (T_arg_nexp (Ne_var "'nv143"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv144")); (T_arg_nexp (Ne_var "'nv143"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "sz") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv129")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_var "'nv181"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_var "'nv181"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_var "'nv181"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_var "'nv181"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_var "'nv181"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "sz") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv165")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv167")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "lsl") Unknown) [(E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "sz") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv186"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv183") (Ne_exp (Ne_var "'nv184"))))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "crc32c") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "C") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv201")); (T_arg_nexp (Ne_var "'nv200"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv201")); (T_arg_nexp (Ne_var "'nv200"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv201")); (T_arg_nexp (Ne_var "'nv200"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv201")); (T_arg_nexp (Ne_var "'nv200"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv201")); (T_arg_nexp (Ne_var "'nv200"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "CRC") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "crc32c") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "decodeData3Source") Unknown))
+ (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeData3Source") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "o0") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Ra") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Ra") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "o0") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "MultiplyAddSub") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeData3Source") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "U") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv61")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "o0") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Ra") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv57")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv61")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Ra") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv57")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "o0") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "U") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv101")); (T_arg_nexp (Ne_var "'nv100"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv101")); (T_arg_nexp (Ne_var "'nv100"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv101")); (T_arg_nexp (Ne_var "'nv100"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv101")); (T_arg_nexp (Ne_var "'nv100"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv101")); (T_arg_nexp (Ne_var "'nv100"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "MultiplyAddSubLong") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "decodeData3Source") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "U") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv113")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Ra") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv109")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv107")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv105")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv105")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv107")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv113")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Ra") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv109")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "U") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "MultiplyHigh") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLogicalShiftedRegister") Unknown) (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm6") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rd") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rn") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "reg_index") Unknown)) Unknown) (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt_reg") Unknown) [(E_aux (E_id (Id_aux (Id "Rm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "atom") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "LogicalOp") Unknown)) Unknown) (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LogicalOp_AND") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "opc") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LogicalOp_AND") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LogicalOp_ORR") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LogicalOp_EOR") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "LogicalOp_AND") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "sf") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_var "'nv109"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_var "'nv109"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_var "'nv109"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_var "'nv109"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_var "'nv109"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "imm6") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'nv91"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'nv91"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'nv91"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'nv91"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'nv91"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ReservedValue") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "ShiftType") Unknown)) Unknown) (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "ShiftType"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DecodeShift") Unknown) [(E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant one) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant two) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "ShiftType"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "range") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant zero) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown)]) Unknown) (Id_aux (Id "shift_amount") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm6") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv112"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "invert") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "N") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "LogicalShiftedRegister") Unknown) [
+ (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "LogicalOp"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "ShiftType"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "shift_amount") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "invert") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeDataSIMDFPoint1") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "decodeDataSIMDFPoint1") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Unallocated") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeDataSIMDFPoint2") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "not_implemented") Unknown) [(E_aux (E_lit (L_aux (L_string "decodeDataSIMDFPoint2") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_app (Id_aux (Id "Unallocated") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeDataRegister") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLogicalShiftedRegister") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeAddSubtractShiftedRegister") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv61")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeAddSubtractExtendedRegister") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const three); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeAddSubtractWithCarry") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv123")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const eight); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeConditionalCompareRegister") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeConditionalCompareImmediate") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeConditionalSelect") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeData3Source") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeData2Source") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const 9)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeData1Source") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeDataImmediate") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 22)); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodePCRelAddressing") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 22)); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeAddSubtractImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv37")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const 12); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 22)); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLogicalImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv56")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 22)); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeMoveWideImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv75")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const two); (Ne_add [(Ne_const sixteen); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 22)); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeBitfield") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv94")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 22)); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeExtract") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv113")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeLoadsStores") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreExclusive") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv42")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadRegisterLiteral") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv85")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const five); (Ne_const two)])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreNoAllocatePairOffset") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv128")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreRegisterPairPostIndexed") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreRegisterPairOffset") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv214")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreRegisterPairPreIndexed") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv257")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreRegisterUnscaledImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv300")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreRegisterImmediatePostIndexed") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv343")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreRegisterUnprivileged") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv386")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreRegisterImmediatePreIndexed") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv429")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 9); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreRegisterRegisterOffset") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv472")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadStoreRegisterUnsignedImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv515")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const 12); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeAdvSIMDLoadStoreMultiStruct") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeAdvSIMDLoadStoreMultiStructPostIndexed") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeAdvSIMDLoadStoreSingleStruct") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 9)); (T_arg_nexp (Ne_const 10)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeAdvSIMDLoadStoreSingleStructPostIndexed") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeSystemImplementationDefined") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 11)); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeImplementationDefined") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 11)); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeImplementationDefined") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 10)); (T_arg_nexp (Ne_const 11)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 11)); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeSystem") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [ ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decodeBranchesExceptionSystem") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 21)); (T_arg_nexp (Ne_const 22)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeUnconditionalBranchImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_add [(Ne_const five); (Ne_add [(Ne_const 26); (Ne_const one)])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 21)); (T_arg_nexp (Ne_const 22)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeCompareBranchImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 21)); (T_arg_nexp (Ne_const 22)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeTestBranchImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv74")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const 14); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 21)); (T_arg_nexp (Ne_const 22)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeConditionalBranchImmediate") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const 19); (Ne_add [(Ne_const one); (Ne_add [(Ne_const four); (Ne_const seven)])])])])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 21)); (T_arg_nexp (Ne_const 22)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeExceptionGeneration") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 21)); (T_arg_nexp (Ne_const 22)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeSystemImplementationDefined") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 21)); (T_arg_nexp (Ne_const 22)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeUnconditionalBranchRegister") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux (Effect_opt_effect (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)) Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "decode") Unknown) (P_aux (P_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const 25)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [
+ (E_aux (E_app (Id_aux (Id "Unallocated") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const 25)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeDataImmediate") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const 25)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeBranchesExceptionSystem") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const 25)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeLoadsStores") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux P_wild (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const 25)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeDataRegister") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const 25)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeDataSIMDFPoint1") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_vector_concat [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_vector [(P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const 25)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "decodeDataSIMDFPoint2") Unknown) [(E_aux (E_id (Id_aux (Id "machineCode") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) 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_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_id (Id_aux (Id "unit") Unknown)) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "TMStart") Unknown) [(P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant seven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant eight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "nesting") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "TxNestingLevel") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TxNestingLevel")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "nesting") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "<_u") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "TXIDR_EL0") Unknown)) (Unknown, (Just ((T_abbrev (T_id "TXIDR_EL0_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "DEPTH") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "lt_vec_unsigned")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "TxNestingLevel") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TxNestingLevel")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant seven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant eight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "nesting") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv20")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv20")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "TxNestingLevel")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "nesting") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "TMStartEffect") Unknown)) (Unknown, (Just ((T_abbrev (T_id "TMSTATUS_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "TMStartEffect")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_vector (LEXP_aux (LEXP_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num 10) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 10))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "TMAbortEffect") Unknown)) (Unknown, (Just ((T_abbrev (T_id "TMSTATUS_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "TMAbortEffect")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "TMAbortEffect")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "TMAbortEffect")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "TMCommit") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant seven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant eight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "nesting") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "TxNestingLevel") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TxNestingLevel")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "nesting") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv62")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "TMCommitEffect") Unknown) []) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "nesting") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv73")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_UndefinedFault") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "TxNestingLevel") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TxNestingLevel")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant seven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant eight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "nesting") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv87")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv87")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "minus_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "TxNestingLevel")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "TxNestingLevel")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "TMTest") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "TxNestingLevel") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TxNestingLevel")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id ">") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "gt_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_NZCV") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_NZCV") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "TMAbort") Unknown) [(P_aux (P_id (Id_aux (Id "retry") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "reason") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "TxNestingLevel") Unknown)) (Unknown, (Just ((T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), (Tag_extern (Just "TxNestingLevel")), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id ">") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "gt_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_vector_range
+ (LEXP_aux (LEXP_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const four) (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "reason") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_vector
+ (LEXP_aux (LEXP_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "retry") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_vector
+ (LEXP_aux (LEXP_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num 9) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 9))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "TMAbortEffect") Unknown)) (Unknown, (Just ((T_abbrev (T_id "TMSTATUS_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), (Tag_extern (Just "TMAbortEffect")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "TMAbortEffect")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "TMAbortEffect")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "CompareAndBranch") Unknown) [(P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "iszero") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "IsZero") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "iszero") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "BranchTo") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rPC") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv152")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv153")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv152")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "BranchType_JMP") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "BranchConditional") Unknown) [(P_aux (P_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app (Id_aux (Id "ConditionHolds") Unknown) [(E_aux (E_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "BranchTo") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rPC") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv183")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "BranchType_JMP") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "GenerateExceptionEL1") Unknown) [(P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "AArch64_CallSupervisor") Unknown) [(E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "GenerateExceptionEL2") Unknown) [(P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv260")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv262")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv257")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv259")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "IsSecure") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "hvc_enable") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_field (E_aux (E_id (Id_aux (Id "SCR_EL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "HCE") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "NOT'") Unknown) [(E_aux (E_field (E_aux (E_id (Id_aux (Id "HCR_EL2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "HCR_type") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "HCD") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "hvc_enable") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv279")); (T_arg_nexp (Ne_var "'nv278"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv279")); (T_arg_nexp (Ne_var "'nv278"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv279")); (T_arg_nexp (Ne_var "'nv278"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv279")); (T_arg_nexp (Ne_var "'nv278"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv279")); (T_arg_nexp (Ne_var "'nv278"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_UndefinedFault") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_CallHypervisor") Unknown) [(E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "GenerateExceptionEL3") Unknown) [(P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv289")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv291")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_CheckForSMCTrap") Unknown) [(E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_field (E_aux (E_id (Id_aux (Id "SCR_EL3") Unknown)) (Unknown, (Just ((T_abbrev (T_id "SCRType") (T_app "register" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "SMD") Unknown)) (Unknown, (Just ((T_id "bit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_UndefinedFault") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_CallSecureMonitor") Unknown) [(E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "DebugBreakpoint") Unknown) [(P_aux (P_id (Id_aux (Id "comment") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "AArch64_SoftwareBreakpoint") Unknown) [(E_aux (E_id (Id_aux (Id "comment") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "ExternalDebugBreakpoint") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "Halt") Unknown) [(E_aux (E_id (Id_aux (Id "DebugHalt_HaltInstruction") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "DebugSwitchToExceptionLevel") Unknown) [(P_aux (P_id (Id_aux (Id "target_level") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "DCPSInstruction") Unknown) [(E_aux (E_id (Id_aux (Id "target_level") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "MoveSystemImmediate") Unknown) [(P_aux (P_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "field") Unknown)) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "field") Unknown)) (Unknown, (Just ((T_id "PSTATEField"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "PSTATEField_SP") Unknown) []) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_SP") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "SPSel")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "PSTATEField_DAIFSet") Unknown) []) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_D") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_D") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_A") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_A") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_I") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_I") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_F") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_F") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "PSTATEField_DAIFClr") Unknown) []) (Unknown, (Just ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_D") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_D") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT'") Unknown) [
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num three) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const three))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_A") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_A") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT'") Unknown) [
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_I") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_I") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT'") Unknown) [
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "PSTATE_F") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "PSTATE_F") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT'") Unknown) [
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), (Tag_extern (Just "DAIF")), [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "Hint") Unknown) [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "SystemHintOp_YIELD") Unknown) []) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Hint_Yield") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "SystemHintOp_WFE") Unknown) []) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app (Id_aux (Id "EventRegistered") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ClearEventRegister") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv386")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv388")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_CheckForWFxTrap") Unknown) [
+ (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "IsSecure") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv454")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv456")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv451")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv453")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_CheckForWFxTrap") Unknown) [
+ (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv464")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "!=") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv466")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_CheckForWFxTrap") Unknown) [
+ (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_true Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "WaitForEvent") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "SystemHintOp_WFI") Unknown) []) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "InterruptPending") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv469")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv471")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_CheckForWFxTrap") Unknown) [
+ (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "IsSecure") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv537")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL0") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv539")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv534")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "==") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL1") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_CheckForWFxTrap") Unknown) [
+ (E_aux (E_id (Id_aux (Id "EL2") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "HaveEL") Unknown) [(E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "PSTATE_EL") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv547")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "!=") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv549")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "AArch64_CheckForWFxTrap") Unknown) [
+ (E_aux (E_id (Id_aux (Id "EL3") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "WaitForInterrupt") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "SystemHintOp_SEV") Unknown) []) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SendEvent") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "SystemHintOp_SEVL") Unknown) []) (Unknown, (Just ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "EventRegisterSet") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "ClearExclusiveMonitor") Unknown) [(P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "ClearExclusiveLocal") Unknown) [
+ (E_aux (E_app (Id_aux (Id "ProcessorID") Unknown) []) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "Barrier") Unknown) [(P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "MemBarrierOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemBarrierOp_DSB") Unknown) []) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DataSynchronizationBarrier") Unknown) [
+ (E_aux (E_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemBarrierOp_DMB") Unknown) []) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "DataMemoryBarrier") Unknown) [
+ (E_aux (E_id (Id_aux (Id "domain") Unknown)) (Unknown, (Just ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "types") Unknown)) (Unknown, (Just ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemBarrierOp_ISB") Unknown) []) (Unknown, (Just ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "InstructionSynchronizationBarrier") Unknown) []) (Unknown, (Just ((T_id "unit"), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_barr Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "System") Unknown) [(P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sys_op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sys_op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sys_op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sys_crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sys_crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "has_result") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "has_result") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "SysOp_R") Unknown) [
+ (E_aux (E_id (Id_aux (Id "sys_op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "sys_op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "SysOp_W") Unknown) [
+ (E_aux (E_id (Id_aux (Id "sys_op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "MoveSystemRegister") Unknown) [(P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sys_op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sys_op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sys_op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sys_crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sys_crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "read") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "read") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "System_Get") Unknown) [
+ (E_aux (E_id (Id_aux (Id "sys_op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "sys_op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "System_Put") Unknown) [
+ (E_aux (E_id (Id_aux (Id "sys_op0") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op1") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crn") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_crm") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "sys_op2") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "ImplementationDefinedTestBeginEnd") Unknown) [(P_aux (P_id (Id_aux (Id "isEnd") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "isEnd") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "test ends") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "test begins") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "ImplementationDefinedStopFetching") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "stop fetching instructions") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "ImplementationDefinedThreadStart") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "info") Unknown) [(E_aux (E_lit (L_aux (L_string "thread start") Unknown)) (Unknown, (Just ((T_id "string"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "TestBitAndBranch") Unknown) [(P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "bit_pos") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "bit_val") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_vector_access
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "bit_pos") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "bit_val") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "BranchTo") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rPC") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv591")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv592")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv591")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "BranchType_JMP") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "BranchImmediate") Unknown) [(P_aux (P_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "BranchType_CALL") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_lit (L_aux (L_num thirty) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirty))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rPC") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv641")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv641")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "BranchTo") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rPC") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv663")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv664")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv663")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "BranchRegister") Unknown) [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "BranchType_CALL") Unknown)) (Unknown, (Just ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_lit (L_aux (L_num thirty) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirty))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rPC") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv714")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num four) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const four))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv714")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "BranchTo") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "target") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "branch_type") Unknown)) (Unknown, (Just ((T_id "BranchType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "ExceptionReturn") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "AArch64_ExceptionReturn") Unknown) [
+ (E_aux (E_app (Id_aux (Id "rELR'") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "rSPSR") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "DebugRestorePState") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "DRPSInstruction") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "LoadLiteral") Unknown) [(P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rPC") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv742")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv743")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv742")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_LOAD") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "flush_read_buffer") Unknown) [
+ (E_aux (E_app (Id_aux (Id "rMem") Unknown) [
+ (E_aux (E_id (Id_aux (Id "empty_read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "AccType_NORMAL") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 11), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv767") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv767") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_PREFETCH") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Prefetch") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "LoadStoreAcqExc") Unknown) [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "s") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "pair") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv781"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "rn_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "pair") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown) (E_aux (E_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "s") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "pair") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "s") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "s") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown) (E_aux (E_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "speculate_exclusive_success") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), (Tag_extern Nothing), [], (Effect_aux (Effect_set [(BE_aux BE_exmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_exmem Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_exmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_exmem Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "s") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [(E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_exmem Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_exmem Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_case (E_aux (E_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1049")); (T_arg_nexp (Ne_var "'nv1048"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1049")); (T_arg_nexp (Ne_var "'nv1048"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1049")); (T_arg_nexp (Ne_var "'nv1048"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1049")); (T_arg_nexp (Ne_var "'nv1048"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1049")); (T_arg_nexp (Ne_var "'nv1048"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "CheckSPAlignment") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rSP") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "rn_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_STORE") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "wMem_Addr") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "pair") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "el1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "el2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "el1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "BigEndian") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1069")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1071")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_var "'R"); (Ne_var "'R")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_var "'R")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1073")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "el1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1075")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_var "'R"); (Ne_var "'R")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_var "'R")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "AArch64_ExclusiveMonitorsPass") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "status") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "flush_write_buffer_exclusive") Unknown) [
+ (E_aux (E_app (Id_aux (Id "wMem_exclusive") Unknown) [
+ (E_aux (E_id (Id_aux (Id "empty_write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv1077") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv1077") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "bool") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "flush_write_buffer") Unknown) [
+ (E_aux (E_app (Id_aux (Id "wMem") Unknown) [
+ (E_aux (E_id (Id_aux (Id "empty_write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv1078") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv1078") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_LOAD") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "AArch64_SetExclusiveMonitors") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "pair") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assert (E_aux (E_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "None") Unknown) []) (Unknown, (Just ((T_fn (T_id "unit") (T_app "option" (T_args [(T_arg_typ (T_id "string"))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "flush_read_buffer") Unknown) [
+ (E_aux (E_app (Id_aux (Id "rMem_exclusive") Unknown) [
+ (E_aux (E_id (Id_aux (Id "empty_read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv1093") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv1093") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "BigEndian") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv1105") (Ne_var "'nv1106")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1099")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv1099") (Ne_var "'nv1100")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv1099") (Ne_var "'nv1100")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv1099") (Ne_var "'nv1100")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv1139") (Ne_var "'nv1140")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1135")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv1135") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv1135") (Ne_const zero)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv1135") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv1173") (Ne_var "'nv1174")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1169")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv1169") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv1169") (Ne_const zero)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv1169") (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv1209") (Ne_var "'nv1210")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "elsize") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1203")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv1203") (Ne_var "'nv1204")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_var "'nv1203") (Ne_var "'nv1204")); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv1203") (Ne_var "'nv1204")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1236")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Align") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1238")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign
+ (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_Abort") Unknown) [
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "AArch64_AlignmentFault") Unknown) [
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "iswrite") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "secondstage") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "FaultRecord"), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "read_buffer_type") Unknown)) Unknown) (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rMem_exclusive") Unknown) [
+ (E_aux (E_id (Id_aux (Id "empty_read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1252")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1252")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rMem_exclusive") Unknown) [
+ (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1283")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1283")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyseven) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant onetwentyeight) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app (Id_aux (Id "flush_read_buffer") Unknown) [
+ (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv1307") (Ne_var "'nv1308")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv1302") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv1302") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtythree) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const zero)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const sixtythree) (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_id (Id_aux (Id "value") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num onetwentyseven) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyseven))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "flush_read_buffer") Unknown) [
+ (E_aux (E_app (Id_aux (Id "rMem'") Unknown) [
+ (E_aux (E_id (Id_aux (Id "empty_read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "excl") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));(E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv1333") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv1333") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [(E_aux (E_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_exmem Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_exmem Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "LoadStorePairNonTemp") Unknown) [(P_aux (P_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "scale") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv1346"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "CheckSPAlignment") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rSP") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1421")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1422")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1421")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Addr") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv1460") (Ne_var "'nv1461")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1479")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1480")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1479")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_var "fresh_v"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wSP") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_STORE") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "write_buffer_type") Unknown)) Unknown) (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem") Unknown) [(E_aux (E_id (Id_aux (Id "empty_write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1581")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1581")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv1569") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv1569") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem") Unknown) [(E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1610")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1610")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv1600") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv1600") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "flush_write_buffer") Unknown) [(E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_LOAD") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "read_buffer_type") Unknown)) Unknown) (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rMem") Unknown) [
+ (E_aux (E_id (Id_aux (Id "empty_read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1641")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1641")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rMem") Unknown) [(E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1670")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1670")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant two) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant two) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "read_data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "flush_read_buffer") Unknown) [
+ (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv1692") (Ne_var "'nv1693")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv1689") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv1689") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "read_data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv1715") (Ne_var "'nv1716")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1709")); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "read_data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv1798") (Ne_var "'nv1799")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv1768") (Ne_var "'nv1769")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv1744")); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "LoadImmediate") Unknown) [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wb_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_PREFETCH") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "CheckSPAlignment") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rSP") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2303")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2304")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2303")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Addr") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv2346"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2360")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2361")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2360")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_var "fresh_v"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wSP") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_STORE") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "flush_write_buffer") Unknown) [
+ (E_aux (E_app (Id_aux (Id "wMem") Unknown) [(E_aux (E_id (Id_aux (Id "empty_write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv2408"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv2401") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv2401") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_LOAD") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "flush_read_buffer") Unknown) [
+ (E_aux (E_app (Id_aux (Id "rMem") Unknown) [
+ (E_aux (E_id (Id_aux (Id "empty_read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv2440"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv2424"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv2417") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv2417") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [(E_aux (E_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_PREFETCH") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Prefetch") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "LoadRegister") Unknown) [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "extend_type") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum eight), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "ExtendReg") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "extend_type") Unknown)) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wb_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_PREFETCH") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "CheckSPAlignment") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rSP") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2946")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2947")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv2946")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Addr") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv2989"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3003")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3004")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv3003")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_var "fresh_v"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wSP") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_STORE") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "flush_write_buffer") Unknown) [
+ (E_aux (E_app (Id_aux (Id "wMem") Unknown) [(E_aux (E_id (Id_aux (Id "empty_write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv3051"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv3044") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv3044") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_LOAD") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "flush_read_buffer") Unknown) [
+ (E_aux (E_app (Id_aux (Id "rMem") Unknown) [
+ (E_aux (E_id (Id_aux (Id "empty_read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv3083"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv3067"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv3060") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv3060") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ZeroExtend") Unknown) [(E_aux (E_id (Id_aux (Id "regsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_PREFETCH") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Prefetch") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "LoadStorePair") Unknown) [(P_aux (P_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), (Tag_enum 12), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown) (E_aux (E_lit (L_aux (L_num eight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const eight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv3106"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "boolean") Unknown)) Unknown) (Id_aux (Id "wb_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_or_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "!=") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "neq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_LOAD") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_app (Id_aux (Id "CheckSPAlignment") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rSP") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4197")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4198")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4197")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MemOp_STORE") Unknown)) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem_Addr") Unknown) [(E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv4236") (Ne_var "'nv4237")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_false Unknown)) (Unknown, (Just ((T_id "bool"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_eamem Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "wback") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "postindex") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4255")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "offset") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4256")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4255")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_var "fresh_v"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wSP") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address'") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "memop") Unknown)) (Unknown, (Just ((T_id "MemOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_STORE") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "write_buffer_type") Unknown)) Unknown) (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem") Unknown) [(E_aux (E_id (Id_aux (Id "empty_write_buffer") Unknown)) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4357")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4357")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv4345") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv4345") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "wMem") Unknown) [(E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4386")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4386")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv4376") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv4376") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_app (Id_aux (Id "flush_write_buffer") Unknown) [(E_aux (E_id (Id_aux (Id "write_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "write_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_wmv Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "MemOp_LOAD") Unknown) []) (Unknown, (Just ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "read_buffer_type") Unknown)) Unknown) (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rMem") Unknown) [
+ (E_aux (E_id (Id_aux (Id "empty_read_buffer") Unknown)) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4417")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4417")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rMem") Unknown) [(E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "address") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4446")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4446")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "acctype") Unknown)) (Unknown, (Just ((T_id "AccType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant two) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant two) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "read_data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "flush_read_buffer") Unknown) [
+ (E_aux (E_id (Id_aux (Id "read_buffer") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "read_buffer_type"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "dbytes") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv4468") (Ne_var "'nv4469")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'nv4465") (Ne_const eight)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'nv4465") (Ne_const eight))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rmem Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "read_data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv4491") (Ne_var "'nv4492")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4485")); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "read_data") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_var "'D") (Ne_const two)); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_var "'D") (Ne_const two))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv4574") (Ne_var "'nv4575")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv4544") (Ne_var "'nv4545")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4520")); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "rt_unknown") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_id "boolean") (T_id "bit")))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "UNKNOWN") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "_signed") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [
+ (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "SignExtend") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "t2") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "data2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_escape Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rmem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "AddSubImmediate") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rSP") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "AddWithCarry") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "0v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "1v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_NZCV") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wSP") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "BitfieldMove") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "inzero") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "extend") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "R") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "wmask") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "tmask") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "dst") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "inzero") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "src") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "bot") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "dst") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4669")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "wmask") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4669")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4669")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_and")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4662")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ROR") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "src") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "R") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4665")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "wmask") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4665")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4665")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_and")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4662")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4662")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_or")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "top") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "extend") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Replicate") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "bot") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_vector_access (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "src") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "S") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "dst") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "top") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4689")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "tmask") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4689")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4689")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_and")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4684")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "bot") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4686")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "tmask") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4686")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4686")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_and")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4684")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4684")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_or")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "ExtractRegister") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "lsb") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_times (Nexp_aux (Nexp_constant two) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_times (Nexp_aux (Nexp_constant two) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "concat") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_const two) (Ne_var "'R")); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_const two) (Ne_var "'R"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4697")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4699")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_var "'R"); (Ne_var "'R")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_var "'R")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_const two) (Ne_var "'R")); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_const two) (Ne_var "'R"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "concat") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_const two) (Ne_var "'R")); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_const two) (Ne_var "'R"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_mult (Ne_const two) (Ne_var "'R")); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_mult (Ne_const two) (Ne_var "'R"))); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "lsb") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv4767"); (Ne_var "'nv4768")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv4739") (Ne_var "'nv4740")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "lsb") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4703")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "LogicalImmediate") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "LogicalOp_AND") Unknown) []) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4799")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4799")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4799")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_and")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "LogicalOp_ORR") Unknown) []) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4801")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4801")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4801")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_or")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "LogicalOp_EOR") Unknown) []) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4803")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "^") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4803")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4803")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_xor")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_NZCV") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_vector_access
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix
+ (E_aux (E_app (Id_aux (Id "length") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4844")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv4818") (Ne_var "'nv4819")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4806")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_app (Id_aux (Id "IsZeroBit") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4847")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4849")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const one); (Ne_const two)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_const two)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4808")); (T_arg_nexp (Ne_var "'nv4807")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const one); (Ne_var "'nv4807")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_var "'nv4807")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wSP") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "MoveWide") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "pos") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MoveWideOp_K") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_vector_range (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "pos") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num fifteen) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const fifteen))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv4904"); (Ne_var "'nv4905")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "pos") Unknown)) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4901")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv4901") (Ne_var "'nv4900")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4901")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv4901") (Ne_var "'nv4900")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "MoveWideOp_N") Unknown)) (Unknown, (Just ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "Address") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "page") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtythree) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant sixtyfour) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rPC") Unknown) []) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "page") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_vector_range (LEXP_aux (LEXP_id (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num 11) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 11))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const 11)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const 11) (Ne_const zero)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [(E_aux (E_lit (L_aux (L_num 12) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const 12))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const 12); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const 12)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4956")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4957")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv4956")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "AddSubExtendRegister") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "extend_type") Unknown)) (Unknown, (Just ((T_id "ExtendType"), (Tag_enum eight), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const seven))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rSP") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ExtendReg") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "extend_type") Unknown)) (Unknown, (Just ((T_id "ExtendType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const seven))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "AddWithCarry") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "2v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "3v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "2v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "3v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_NZCV") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num thirtyone) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtyone))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_app (Id_aux (Id "~") Unknown) [(E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_and_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wSP") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "AddSubShiftedRegister") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift_amount") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ShiftReg") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_id "ShiftType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift_amount") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "AddWithCarry") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "4v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "5v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "4v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "5v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_NZCV") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "AddSubCarry") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "AddWithCarry") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "PSTATE_C") Unknown)) (Unknown, (Just ((T_id "bit"), Tag_alias, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "6v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "7v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "6v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "7v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_NZCV") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "ConditionalCompareImmediate") Unknown) [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "flags") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "imm") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "flags'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "flags") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "ConditionHolds") Unknown) [(E_aux (E_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "AddWithCarry") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "8v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "9v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "8v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "9v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "flags'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_NZCV") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "flags'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "ConditionalCompareRegister") Unknown) [(P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "flags") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown) (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "flags'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "flags") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "ConditionHolds") Unknown) [(E_aux (E_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_let (LB_aux (LB_val_implicit (P_aux (P_tup [(P_aux P_wild (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_case (E_aux (E_app (Id_aux (Id "AddWithCarry") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "carry_in") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_tup [(P_aux (P_id (Id_aux (Id "10v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "11v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_tuple [(E_aux (E_id (Id_aux (Id "10v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "11v") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_tup [(T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])); (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))]))]), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "flags'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "nzcv") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_NZCV") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown))))) (E_aux (E_id (Id_aux (Id "flags'") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "ConditionalSelect") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "else_inv") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "else_inc") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "ConditionHolds") Unknown) [(E_aux (E_id (Id_aux (Id "condition") Unknown)) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "else_inv") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "else_inc") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5077")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5077")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "add_vec_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "Reverse") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "RevOp"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant five) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant six) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "V") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num six) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const six))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "RevOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "RevOp_REV16") Unknown) []) (Unknown, (Just ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "V") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "RevOp_REV32") Unknown) []) (Unknown, (Just ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "V") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "RevOp_REV64") Unknown) []) (Unknown, (Just ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "V") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "RevOp_RBIT") Unknown) []) (Unknown, (Just ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "V") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq_range")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_for (Id_aux (Id "vbit") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num five) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Ord_aux Ord_inc Unknown)
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app_infix (E_aux (E_case
+ (E_aux (E_vector_access (E_aux (E_id (Id_aux (Id "V") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "vbit") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5135")); (T_arg_nexp (Ne_var "'nv5134"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5135")); (T_arg_nexp (Ne_var "'nv5134"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5135")); (T_arg_nexp (Ne_var "'nv5134"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5135")); (T_arg_nexp (Ne_var "'nv5134"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_var "'nv5135")); (T_arg_nexp (Ne_var "'nv5134"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "tmp") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "vsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "lsl") Unknown) [
+ (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "vbit") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const five))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv5139") (Ne_exp (Ne_var "'nv5140"))))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_for (Id_aux (Id "base") Unknown) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv5148") (Ne_var "'nv5149")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_id (Id_aux (Id "vsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv5176") (Ne_var "'nv5177")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Ord_aux Ord_inc Unknown)
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux
+ (LEXP_vector_range
+ (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "vsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5250"); (Ne_var "'nv5251")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv5224") (Ne_var "'nv5225")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5191")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv5191") (Ne_var "'nv5190")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "tmp") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app_infix (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_id (Id_aux (Id "vsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv5424") (Ne_var "'nv5425")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5394"); (Ne_var "'nv5395")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv5350") (Ne_var "'nv5351")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "vsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5438"); (Ne_var "'nv5439")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5282")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv5191") (Ne_var "'nv5190")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5191")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv5191") (Ne_var "'nv5190")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_vector_range
+ (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app_infix (E_aux (E_lit (L_aux (L_num two) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const two))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown) (E_aux (E_id (Id_aux (Id "vsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv5608") (Ne_var "'nv5609")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5578"); (Ne_var "'nv5579")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv5534") (Ne_var "'nv5535")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "vsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5622"); (Ne_var "'nv5623")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5467")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv5467") (Ne_var "'nv5466")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "tmp") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown) (E_aux (E_id (Id_aux (Id "vsize") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5714"); (Ne_var "'nv5715")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv5688") (Ne_var "'nv5689")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_id (Id_aux (Id "base") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5654")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv5467") (Ne_var "'nv5466")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5467")); (T_arg_nexp (Ne_add [(Ne_minus (Ne_var "'nv5467") (Ne_var "'nv5466")); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "CountLeading") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_id "CountOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "uinteger") Unknown)) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "opcode") Unknown)) (Unknown, (Just ((T_id "CountOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "==") Unknown) (E_aux (E_id (Id_aux (Id "CountOp_CLZ") Unknown)) (Unknown, (Just ((T_id "CountOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "eq")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "CountLeadingZeroBits") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'R"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "CountLeadingSignBits") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'R"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "uinteger") (T_id "nat")) (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "Division") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "integer") Unknown)) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_app (Id_aux (Id "IsZero") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "Int") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "quot") Unknown)
+ (E_aux (E_app (Id_aux (Id "Int") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv5769"))])), (Tag_extern (Just "quot")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "Shift") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ShiftReg") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_id "ShiftType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv5799"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "mod") Unknown) (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_minus (Ne_var "'nv5792") (Ne_const one)))])), (Tag_extern (Just "modulo")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "CRC") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "crc32c") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_if (E_aux (E_app (Id_aux (Id "~") Unknown) [
+ (E_aux (E_app (Id_aux (Id "HaveCRCExt") Unknown) []) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), (Tag_extern (Just "bitwise_not_bit")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "UnallocatedEncoding") Unknown) []) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_escape Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "acc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "size") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtyone) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "poly") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "crc32c") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_one Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_constant thirtytwo) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_constant thirtytwo) Unknown) (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "tempacc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_const thirtytwo); (Ne_var "'D")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "BitReverse") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "acc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5808")); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [(E_aux (E_app (Id_aux (Id "length") Unknown) [(E_aux (E_id (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), (Tag_extern (Just "length")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_const thirtytwo); (Ne_var "'D")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant thirtytwo) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "tempval") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "BitReverse") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "_val") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5814")); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Zeros") Unknown) [(E_aux (E_lit (L_aux (L_num thirtytwo) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const thirtytwo))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "BitReverse") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "Poly32Mod2") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "tempacc") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_const thirtytwo); (Ne_var "'D")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5822")); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "^") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "tempval") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5822")); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv5822")); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_xor")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_const thirtytwo); (Ne_var "'D")]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "poly") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_rreg Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "MultiplyAddSub") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand3") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "integer") Unknown)) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand3") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv5914"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv5912"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown)
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv5910"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv5895") (Ne_var "'nv5896")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv5861") (Ne_var "'nv5862")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand3") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv6002"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "UInt") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv6000"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown)
+ (E_aux (E_app (Id_aux (Id "UInt") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'nv5998"))])), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv5983") (Ne_var "'nv5984")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5947"); (Ne_var "'nv5948")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "MultiplyAddSubLong") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand3") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "integer") Unknown)) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "sub_op") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "Int") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand3") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "Int") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown)
+ (E_aux (E_app (Id_aux (Id "Int") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv6058") (Ne_var "'nv6059")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv6030") (Ne_var "'nv6031")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "Int") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand3") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "+") Unknown)
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "Int") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown)
+ (E_aux (E_app (Id_aux (Id "Int") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv6126") (Ne_var "'nv6127")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv6096"); (Ne_var "'nv6097")]))])), (Tag_extern (Just "add")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "MultiplyHigh") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "a") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [(E_aux (E_id (Id_aux (Id "destsize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_id (Id_aux (Id "integer") Unknown)) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_app (Id_aux (Id "Int") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "*") Unknown)
+ (E_aux (E_app (Id_aux (Id "Int") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "_unsigned") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_mult (Ne_var "'nv6150") (Ne_var "'nv6151")))])), (Tag_extern (Just "multiply")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_subrange (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [
+ (E_aux (E_lit (L_aux (L_num onetwentyeight) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyeight))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_abbrev (T_abbrev (T_id "integer") (T_id "int")) (T_app "range" (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num onetwentyseven) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const onetwentyseven))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (E_aux (E_lit (L_aux (L_num sixtyfour) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const sixtyfour))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)]); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_add [(Ne_minus (Ne_const onetwentyseven) (Ne_const sixtyfour)); (Ne_const one)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;(FCL_aux (FCL_Funcl (Id_aux (Id "execute") Unknown) (P_aux (P_app (Id_aux (Id "LogicalShiftedRegister") Unknown) [(P_aux (P_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum three), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "shift_amount") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))); (P_aux (P_id (Id_aux (Id "invert") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "rX") Unknown) [
+ (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "n") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "ShiftReg") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "m") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_id (Id_aux (Id "shift_type") Unknown)) (Unknown, (Just ((T_id "ShiftType"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_id (Id_aux (Id "shift_amount") Unknown)) (Unknown, (Just ((T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "invert") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "NOT") Unknown) [(E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_sum (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown) (Nexp_aux (Nexp_constant (zero - 1)) Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown) (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app (Id_aux (Id "to_vec_dec") Unknown) [(E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux (L_num zero) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const zero))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "to_vec_dec")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_intro, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));
+ (E_aux (E_case (E_aux (E_id (Id_aux (Id "op") Unknown)) (Unknown, (Just ((T_id "LogicalOp"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "LogicalOp_AND") Unknown) []) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6177")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "&") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6177")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6177")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_and")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "LogicalOp_ORR") Unknown) []) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6179")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "|") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6179")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6179")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_or")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown))))) ;
+ (Pat_aux (Pat_exp (P_aux (P_app (Id_aux (Id "LogicalOp_EOR") Unknown) []) (Unknown, (Just ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_app_infix (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand1") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6181")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "^") Unknown)
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "operand2") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6181")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6181")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), (Tag_extern (Just "bitwise_xor")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_set, [], (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_lset Unknown) ]) Unknown)))));
+ (E_aux (E_if (E_aux (E_id (Id_aux (Id "setflags") Unknown)) (Unknown, (Just ((T_abbrev (T_id "boolean") (T_id "bit")), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wPSTATE_NZCV") Unknown) [(E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_app (Id_aux (Id "vector") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant three) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_constant four) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_order (Ord_aux Ord_dec Unknown)) Unknown); (Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_id (Id_aux (Id "bit") Unknown)) Unknown)) Unknown)]) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_vector_access
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app_infix (E_aux (E_id (Id_aux (Id "datasize") Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_var "'R"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) (Id_aux (Id "-") Unknown) (E_aux (E_lit (L_aux (L_num one) Unknown)) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_const one))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "atom" (T_args [(T_arg_nexp (Ne_minus (Ne_var "'nv6194") (Ne_var "'nv6195")))])), (Tag_extern (Just "minus")), [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6184")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector_append (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_app (Id_aux (Id "IsZeroBit") Unknown) [
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "bit"), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6221")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown)
+ (E_aux (E_vector [(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))));(E_aux (E_lit (L_aux L_zero Unknown)) (Unknown, (Just ((T_id "bit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6223")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const one); (Ne_const two)]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_const two)])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_var "'nv6186")); (T_arg_nexp (Ne_var "'nv6185")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_minus (Ne_add [(Ne_const one); (Ne_var "'nv6185")]) (Ne_const one))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_var "'nv6185")])); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_lit (L_aux L_unit Unknown)) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))));
+ (E_aux (E_assign (LEXP_aux (LEXP_memory (Id_aux (Id "wX") Unknown) [(E_aux (E_id (Id_aux (Id "d") Unknown)) (Unknown, (Just ((T_abbrev (T_id "reg_index") (T_app "range" (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))
+ (E_aux (E_cast (Typ_aux (Typ_var (Kid_aux (Var "length") Unknown)) Unknown) (E_aux (E_id (Id_aux (Id "result") Unknown)) (Unknown, (Just ((T_app "reg" (T_args [(T_arg_typ (T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "vector" (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const (zero - 1))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux Ord_dec Unknown)); (T_arg_typ (T_id "bit"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown)))))] ) (Unknown, (Just ((T_id "unit"), Tag_spec, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown) ]) Unknown), (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown)))))) (Unknown,(Just ((T_id "unit"), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_wreg Unknown); (BE_aux BE_lset Unknown); (BE_aux BE_rreg Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (T_id "unit") (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_barr Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_exmem Unknown); (BE_aux BE_escape Unknown) ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [(BE_aux BE_rreg Unknown); (BE_aux BE_wreg Unknown); (BE_aux BE_rmem Unknown); (BE_aux BE_barr Unknown); (BE_aux BE_eamem Unknown); (BE_aux BE_wmv Unknown); (BE_aux BE_exmem Unknown); (BE_aux BE_escape Unknown) ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+(DEF_spec (VS_aux (VS_val_spec (TypSchm_aux (TypSchm_ts (TypQ_aux (TypQ_tq [(QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'R") Unknown) [32; 64]) Unknown)) Unknown); (QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_kind [(BK_aux BK_nat Unknown)]) Unknown) (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown); (QI_aux (QI_const (NC_aux (NC_nat_set_bounded (Kid_aux (Var "'D") Unknown) [8; 16; 32; 64]) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_fn (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown) (Typ_aux (Typ_app (Id_aux (Id "option") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown) (Effect_aux (Effect_set [ ]) Unknown)) Unknown)) Unknown) (Id_aux (Id "supported_instructions") Unknown))
+ (Unknown, (Just ((T_fn (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_spec, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) 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") Unknown) [(Typ_arg_aux (Typ_arg_typ (Typ_aux (Typ_app (Id_aux (Id "ast") Unknown) [(Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'R") Unknown)) Unknown)) Unknown); (Typ_arg_aux (Typ_arg_nexp (Nexp_aux (Nexp_var (Kid_aux (Var "'D") Unknown)) Unknown)) Unknown)]) Unknown)) Unknown)]) Unknown)) Unknown) (Effect_opt_aux Effect_opt_pure Unknown) [
+ (FCL_aux (FCL_Funcl (Id_aux (Id "supported_instructions") Unknown) (P_aux (P_id (Id_aux (Id "instr") Unknown)) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_block [(E_aux (E_case (E_aux (E_id (Id_aux (Id "instr") Unknown)) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))) [
+ (Pat_aux (Pat_exp (P_aux P_wild (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ (E_aux (E_app (Id_aux (Id "Some") Unknown) [(E_aux (E_id (Id_aux (Id "instr") Unknown)) (Unknown, (Just ((T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_ctor, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))]) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))] ) (Unknown, (Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_empty, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))) (Unknown,(Just ((T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown)))))
+ ;]) (Unknown, (Just ((T_fn (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])) (T_app "option" (T_args [(T_arg_typ (T_app "ast" (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))])))])) (Effect_aux (Effect_set [ ]) Unknown)), Tag_global, [], (Effect_aux (Effect_set [ ]) Unknown), (Effect_aux (Effect_set [ ]) Unknown))))));
+]
diff --git a/aarch64_small/armV8.ml b/aarch64_small/armV8.ml
new file mode 100644
index 00000000..d02899e1
--- /dev/null
+++ b/aarch64_small/armV8.ml
@@ -0,0 +1,6926 @@
+(*Generated by Lem from armV8.lem.*)
+(* Generated by Sail from armV8.sail. *)
+open Interp_ast
+open Lem_pervasives
+(*Supply common numeric constants at the right type to alleviate repeated calls to typeclass macro*)
+let zero : Nat_big_num.num= (Nat_big_num.of_int( 0))
+let one : Nat_big_num.num= (Nat_big_num.of_int( 1))
+let two : Nat_big_num.num= (Nat_big_num.of_int( 2))
+let three : Nat_big_num.num= (Nat_big_num.of_int( 3))
+let four : Nat_big_num.num= (Nat_big_num.of_int( 4))
+let five : Nat_big_num.num= (Nat_big_num.of_int( 5))
+let six : Nat_big_num.num= (Nat_big_num.of_int( 6))
+let seven : Nat_big_num.num= (Nat_big_num.of_int( 7))
+let eight : Nat_big_num.num= (Nat_big_num.of_int( 8))
+let fifteen : Nat_big_num.num= (Nat_big_num.of_int( 15))
+let sixteen : Nat_big_num.num= (Nat_big_num.of_int( 16))
+let twenty : Nat_big_num.num= (Nat_big_num.of_int( 20))
+let twentythree : Nat_big_num.num= (Nat_big_num.of_int( 23))
+let twentyfour : Nat_big_num.num= (Nat_big_num.of_int( 24))
+let thirty : Nat_big_num.num= (Nat_big_num.of_int( 30))
+let thirtyone : Nat_big_num.num= (Nat_big_num.of_int( 31))
+let thirtytwo : Nat_big_num.num= (Nat_big_num.of_int( 32))
+let thirtyfive : Nat_big_num.num= (Nat_big_num.of_int( 35))
+let thirtynine : Nat_big_num.num= (Nat_big_num.of_int( 39))
+let forty : Nat_big_num.num= (Nat_big_num.of_int( 40))
+let fortyseven : Nat_big_num.num= (Nat_big_num.of_int( 47))
+let fortyeight : Nat_big_num.num= (Nat_big_num.of_int( 48))
+let fiftyfive : Nat_big_num.num= (Nat_big_num.of_int( 55))
+let fiftysix : Nat_big_num.num= (Nat_big_num.of_int( 56))
+let fiftyseven : Nat_big_num.num= (Nat_big_num.of_int( 57))
+let sixtyone : Nat_big_num.num= (Nat_big_num.of_int( 61))
+let sixtythree : Nat_big_num.num= (Nat_big_num.of_int( 63))
+let sixtyfour : Nat_big_num.num= (Nat_big_num.of_int( 64))
+let onetwentyseven : Nat_big_num.num= (Nat_big_num.of_int( 127))
+let onetwentyeight : Nat_big_num.num= (Nat_big_num.of_int( 128))
+let defs:((t*tag*'a list*effect*effect)option)defs= (Defs [
+(DEF_default (DT_aux( (DT_order (Ord_aux( Ord_dec, Unknown))), Unknown)));
+(DEF_type (TD_aux( (TD_abbrev( (Id_aux( (Id "boolean"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)))), Unknown)))), (Unknown, (Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_abbrev( (Id_aux( (Id "integer"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "int"), Unknown))), Unknown)))), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "int"), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_abbrev( (Id_aux( (Id "uinteger"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "nat"), Unknown))), Unknown)))), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_abbrev( (Id_aux( (Id "reg_size"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_abbrev( (Id_aux( (Id "reg_index"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown))])), Unknown)))), Unknown)))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_abbrev( (Id_aux( (Id "SIMD_index"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown))])), Unknown)))), Unknown)))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "_PC"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "_PC")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant seven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant eight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "TxNestingLevel"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TxNestingLevel")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "TMSTATUS_type"), Unknown)), (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 16)), Unknown)), (Id_aux( (Id "IMP"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 15)), Unknown)), (Id_aux( (Id "DBG"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 14)), Unknown)), (Id_aux( (Id "MEM"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 13)), Unknown)), (Id_aux( (Id "ERR"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 12)), Unknown)), (Id_aux( (Id "INV"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 11)), Unknown)), (Id_aux( (Id "SIZE"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 10)), Unknown)), (Id_aux( (Id "NEST"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 9)), Unknown)), (Id_aux( (Id "ABRT"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 8)), Unknown)), (Id_aux( (Id "RTRY"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 4),(Nat_big_num.of_int 0))), Unknown)), (Id_aux( (Id "REASON"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "TMSTATUS_type"), Unknown))), Unknown)), (Id_aux( (Id "TMAbortEffect"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "TMSTATUS_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "TMAbortEffect")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "TMSTATUS_type"), Unknown))), Unknown)), (Id_aux( (Id "TMStartEffect"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "TMSTATUS_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "TMStartEffect")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R30"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R30")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R29"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R29")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R28"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R28")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R27"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R27")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R26"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R26")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R25"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R25")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R24"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R24")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R23"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R23")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R22"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R22")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R21"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R21")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R20"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R20")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R19"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R19")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R18"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R18")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R17"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R17")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R16"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R16")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R15"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R15")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R14"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R14")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R13"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R13")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R12"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R12")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R11"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R11")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R10"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R10")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R9"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R9")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R8"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R8")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R7"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R7")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R6"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R6")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R5"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R5")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R4"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R4")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R3"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R3")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R2"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R2")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R1"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R0"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "R0")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "_R"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_undef, Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R30"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R29"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R28"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R27"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R26"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R25"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R24"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R23"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R22"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R21"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R20"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R19"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R18"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R17"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R16"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R15"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R14"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R13"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R12"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R11"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R10"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R9"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R8"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R7"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R6"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R5"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R4"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R3"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R2"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R1"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "R0"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_undef, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_undef, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "reg_index"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "UInt_reg"), Unknown)), (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "unsigned"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), (Tag_extern (Some "unsigned")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V31"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V31")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V30"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V30")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V29"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V29")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V28"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V28")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V27"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V27")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V26"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V26")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V25"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V25")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V24"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V24")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V23"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V23")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V22"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V22")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V21"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V21")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V20"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V20")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V19"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V19")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V18"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V18")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V17"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V17")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V16"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V16")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V15"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V15")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V14"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V14")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V13"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V13")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V12"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V12")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V11"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V11")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V10"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V10")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V9"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V9")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V8"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V8")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V7"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V7")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V6"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V6")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V5"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V5")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V4"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V4")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V3"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V3")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V2"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V2")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V1"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V0"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "V0")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "_V"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 33))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_undef, Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V31"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V30"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V29"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V28"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V27"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V26"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V25"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V24"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V23"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V22"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V21"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V20"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V19"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V18"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V17"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V16"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V15"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V14"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V13"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V12"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V11"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V10"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V9"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V8"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V7"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V6"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V5"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V4"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V3"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V2"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "V1"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "V0"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 33))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_undef, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 33))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_undef, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'m"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'n"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'m"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'n"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'n"), Unknown))), Unknown)), (Nexp_aux( (Nexp_exp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'m"), Unknown))), Unknown))), Unknown)))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "lsl"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'n"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'m"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'n"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'m"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'n"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "**"), Unknown)), (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'m"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_exp (Ne_var "'nv21")))]))), (Tag_extern (Some "power")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv7"), (Ne_var "'nv8"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'n"), (Ne_exp (Ne_var "'m")))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'n"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'m"))])))]), (T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'n"), (Ne_exp (Ne_var "'m")))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "not_implemented"), Unknown)), (P_aux( (P_id (Id_aux( (Id "message"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_exit (E_aux( (E_id (Id_aux( (Id "message"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "string"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_none (Kid_aux( (Var "'a"), Unknown))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_var (Kid_aux( (Var "'a"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "not_implemented_extern"), Unknown)), (P_aux( (P_id (Id_aux( (Id "message"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_exit (E_aux( (E_id (Id_aux( (Id "message"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))), (Unknown, (Some ((T_var "'tv0"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_var "'tv0"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_var "'tv0"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "string"), (T_var "'tv0"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "info"), Unknown)), (P_aux( (P_id (Id_aux( (Id "message"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "string"), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_record( (Id_aux( (Id "IMPLEMENTATION_DEFINED_type"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypQ_aux( TypQ_no_forall, Unknown)), [
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "HaveCRCExt"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "HaveAArch32EL"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "HaveAnyAArch32"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "HaveEL2"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "HaveEL3"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "HighestELUsingAArch32"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "IsSecureBelowEL3"), Unknown)));], false)), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "IMPLEMENTATION_DEFINED"), Unknown))), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_record (FES_aux( (FES_Fexps( [(FE_aux( (FE_Fexp( (Id_aux( (Id "HaveCRCExt"), Unknown)), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "HaveAArch32EL"), Unknown)), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "HaveAnyAArch32"), Unknown)), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "HaveEL2"), Unknown)), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "HaveEL3"), Unknown)), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "HighestELUsingAArch32"), Unknown)), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "IsSecureBelowEL3"), Unknown)), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None)))), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_exmem, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "speculate_exclusive_success"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "bool"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_exmem, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "HCR_type"), Unknown)), (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 33)), Unknown)), (Id_aux( (Id "ID"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 32)), Unknown)), (Id_aux( (Id "CD"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 31)), Unknown)), (Id_aux( (Id "RW"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 30)), Unknown)), (Id_aux( (Id "TRVM"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 29)), Unknown)), (Id_aux( (Id "HCD"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 28)), Unknown)), (Id_aux( (Id "TDZ"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 27)), Unknown)), (Id_aux( (Id "TGE"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 26)), Unknown)), (Id_aux( (Id "TVM"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 25)), Unknown)), (Id_aux( (Id "TTLB"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 24)), Unknown)), (Id_aux( (Id "TPU"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 23)), Unknown)), (Id_aux( (Id "TPC"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 22)), Unknown)), (Id_aux( (Id "TSW"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 21)), Unknown)), (Id_aux( (Id "TACR"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 20)), Unknown)), (Id_aux( (Id "TIDCP"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 19)), Unknown)), (Id_aux( (Id "TSC"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 18)), Unknown)), (Id_aux( (Id "TID3"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 17)), Unknown)), (Id_aux( (Id "TID2"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 16)), Unknown)), (Id_aux( (Id "TID1"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 15)), Unknown)), (Id_aux( (Id "TID0"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 14)), Unknown)), (Id_aux( (Id "TWE"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 13)), Unknown)), (Id_aux( (Id "TWI"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 12)), Unknown)), (Id_aux( (Id "DC"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 11),(Nat_big_num.of_int 10))), Unknown)), (Id_aux( (Id "BSU"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 9)), Unknown)), (Id_aux( (Id "FB"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 8)), Unknown)), (Id_aux( (Id "VSE"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 7)), Unknown)), (Id_aux( (Id "VI"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 6)), Unknown)), (Id_aux( (Id "VF"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 5)), Unknown)), (Id_aux( (Id "AMO"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 4)), Unknown)), (Id_aux( (Id "IMO"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 3)), Unknown)), (Id_aux( (Id "FMO"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 2)), Unknown)), (Id_aux( (Id "PTW"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 1)), Unknown)), (Id_aux( (Id "SWIO"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 0)), Unknown)), (Id_aux( (Id "VM"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "HCR_type"), Unknown))), Unknown)), (Id_aux( (Id "HCR_EL2"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "HCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "HCR_EL2")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "ID_AA64MMFR0_type"), Unknown)), (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_range((Nat_big_num.of_int 31),(Nat_big_num.of_int 28))), Unknown)), (Id_aux( (Id "TGran4"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 27),(Nat_big_num.of_int 24))), Unknown)), (Id_aux( (Id "TGran64"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 23),(Nat_big_num.of_int 20))), Unknown)), (Id_aux( (Id "TGran16"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 19),(Nat_big_num.of_int 16))), Unknown)), (Id_aux( (Id "BigEndEL0"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 15),(Nat_big_num.of_int 12))), Unknown)), (Id_aux( (Id "SNSMem"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 11),(Nat_big_num.of_int 8))), Unknown)), (Id_aux( (Id "BigEnd"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 7),(Nat_big_num.of_int 4))), Unknown)), (Id_aux( (Id "ASIDBits"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 3),(Nat_big_num.of_int 0))), Unknown)), (Id_aux( (Id "PARange"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "ID_AA64MMFR0_type"), Unknown))), Unknown)), (Id_aux( (Id "ID_AA64MMFR0_EL1"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "ID_AA64MMFR0_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "ID_AA64MMFR0_EL1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "RVBAR_EL1"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "RVBAR_EL1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "RVBAR_EL2"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "RVBAR_EL2")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "RVBAR_EL3"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "RVBAR_EL3")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "SCRType"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 13)), Unknown)), (Id_aux( (Id "TWE"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 12)), Unknown)), (Id_aux( (Id "TWI"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 11)), Unknown)), (Id_aux( (Id "ST"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 10)), Unknown)), (Id_aux( (Id "RW"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 9)), Unknown)), (Id_aux( (Id "SIF"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 8)), Unknown)), (Id_aux( (Id "HCE"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 7)), Unknown)), (Id_aux( (Id "SMD"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 3)), Unknown)), (Id_aux( (Id "EA"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 2)), Unknown)), (Id_aux( (Id "FIQ"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 1)), Unknown)), (Id_aux( (Id "IRQ"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 0)), Unknown)), (Id_aux( (Id "NS"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "SCRType"), Unknown))), Unknown)), (Id_aux( (Id "SCR_EL3"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SCR_EL3")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "SCTLR_EL1_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 26)), Unknown)), (Id_aux( (Id "UCI"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 25)), Unknown)), (Id_aux( (Id "EE"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 24)), Unknown)), (Id_aux( (Id "E0E"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 19)), Unknown)), (Id_aux( (Id "WXN"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 18)), Unknown)), (Id_aux( (Id "nTWE"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 16)), Unknown)), (Id_aux( (Id "nTWI"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 15)), Unknown)), (Id_aux( (Id "UCT"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 14)), Unknown)), (Id_aux( (Id "DZE"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 12)), Unknown)), (Id_aux( (Id "I"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 9)), Unknown)), (Id_aux( (Id "UMA"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 8)), Unknown)), (Id_aux( (Id "SED"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 7)), Unknown)), (Id_aux( (Id "ITD"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 5)), Unknown)), (Id_aux( (Id "CP15BEN"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 4)), Unknown)), (Id_aux( (Id "SA0"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 3)), Unknown)), (Id_aux( (Id "SA"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 2)), Unknown)), (Id_aux( (Id "C"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 1)), Unknown)), (Id_aux( (Id "A"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 0)), Unknown)), (Id_aux( (Id "M"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "SCTLR_EL1_type"), Unknown))), Unknown)), (Id_aux( (Id "SCTLR_EL1"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "SCTLR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SCTLR_EL1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "SCTLR_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 25)), Unknown)), (Id_aux( (Id "EE"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 19)), Unknown)), (Id_aux( (Id "WXN"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 12)), Unknown)), (Id_aux( (Id "I"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 3)), Unknown)), (Id_aux( (Id "SA"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 2)), Unknown)), (Id_aux( (Id "C"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 1)), Unknown)), (Id_aux( (Id "A"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 0)), Unknown)), (Id_aux( (Id "M"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "SCTLR_type"), Unknown))), Unknown)), (Id_aux( (Id "SCTLR_EL2"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SCTLR_EL2")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "SCTLR_type"), Unknown))), Unknown)), (Id_aux( (Id "SCTLR_EL3"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SCTLR_EL3")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "TCR_EL1_type"), Unknown)), (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 38)), Unknown)), (Id_aux( (Id "TBI1"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 37)), Unknown)), (Id_aux( (Id "TBI0"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 36)), Unknown)), (Id_aux( (Id "AS"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 34),(Nat_big_num.of_int 32))), Unknown)), (Id_aux( (Id "IPS"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 31),(Nat_big_num.of_int 30))), Unknown)), (Id_aux( (Id "TG1"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 29),(Nat_big_num.of_int 28))), Unknown)), (Id_aux( (Id "SH1"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 27),(Nat_big_num.of_int 26))), Unknown)), (Id_aux( (Id "ORGN1"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 25),(Nat_big_num.of_int 24))), Unknown)), (Id_aux( (Id "IRGN1"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 23)), Unknown)), (Id_aux( (Id "EPD1"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 22)), Unknown)), (Id_aux( (Id "A1"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 21),(Nat_big_num.of_int 16))), Unknown)), (Id_aux( (Id "T1SZ"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 15),(Nat_big_num.of_int 14))), Unknown)), (Id_aux( (Id "TG0"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 13),(Nat_big_num.of_int 12))), Unknown)), (Id_aux( (Id "SH0"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 11),(Nat_big_num.of_int 10))), Unknown)), (Id_aux( (Id "ORGN0"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 9),(Nat_big_num.of_int 8))), Unknown)), (Id_aux( (Id "IRGN0"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 7)), Unknown)), (Id_aux( (Id "EPD0"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 5),(Nat_big_num.of_int 0))), Unknown)), (Id_aux( (Id "T0SZ"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "TCR_EL1_type"), Unknown))), Unknown)), (Id_aux( (Id "TCR_EL1"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "TCR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "TCR_EL1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "TCR_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 20)), Unknown)), (Id_aux( (Id "TBI"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 18),(Nat_big_num.of_int 16))), Unknown)), (Id_aux( (Id "PS"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 15),(Nat_big_num.of_int 14))), Unknown)), (Id_aux( (Id "TG0"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 13),(Nat_big_num.of_int 12))), Unknown)), (Id_aux( (Id "SH0"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 11),(Nat_big_num.of_int 10))), Unknown)), (Id_aux( (Id "ORGN0"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 9),(Nat_big_num.of_int 8))), Unknown)), (Id_aux( (Id "IRGN0"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 5),(Nat_big_num.of_int 0))), Unknown)), (Id_aux( (Id "T0SZ"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "TCR_type"), Unknown))), Unknown)), (Id_aux( (Id "TCR_EL2"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "TCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "TCR_EL2")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "TCR_type"), Unknown))), Unknown)), (Id_aux( (Id "TCR_EL3"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "TCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "TCR_EL3")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "TPIDR_EL0"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TPIDR_EL0")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "TPIDR_EL1"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TPIDR_EL1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "TPIDR_EL2"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TPIDR_EL2")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "TPIDR_EL3"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TPIDR_EL3")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "DBGPRCR_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 0)), Unknown)), (Id_aux( (Id "CORENPDRQ"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "DBGPRCR_type"), Unknown))), Unknown)), (Id_aux( (Id "DBGPRCR_EL1"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "DBGPRCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "DBGPRCR_EL1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "OSDLR_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 0)), Unknown)), (Id_aux( (Id "DLK"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "OSDLR_type"), Unknown))), Unknown)), (Id_aux( (Id "OSDLR_EL1"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "OSDLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "OSDLR_EL1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "EDSCR_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 30)), Unknown)), (Id_aux( (Id "RXfull"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 29)), Unknown)), (Id_aux( (Id "TXfull"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 28)), Unknown)), (Id_aux( (Id "ITO"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 27)), Unknown)), (Id_aux( (Id "RXO"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 26)), Unknown)), (Id_aux( (Id "TXU"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 25)), Unknown)), (Id_aux( (Id "PipeAdv"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 24)), Unknown)), (Id_aux( (Id "ITE"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 23),(Nat_big_num.of_int 22))), Unknown)), (Id_aux( (Id "INTdis"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 21)), Unknown)), (Id_aux( (Id "TDA"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 20)), Unknown)), (Id_aux( (Id "MA"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 18)), Unknown)), (Id_aux( (Id "NS"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 16)), Unknown)), (Id_aux( (Id "SDD"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 14)), Unknown)), (Id_aux( (Id "HDE"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 13),(Nat_big_num.of_int 10))), Unknown)), (Id_aux( (Id "RW"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 9),(Nat_big_num.of_int 8))), Unknown)), (Id_aux( (Id "EL"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 7)), Unknown)), (Id_aux( (Id "A"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 6)), Unknown)), (Id_aux( (Id "ERR"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 5),(Nat_big_num.of_int 0))), Unknown)), (Id_aux( (Id "STATUS"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "EDSCR_type"), Unknown))), Unknown)), (Id_aux( (Id "EDSCR"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "EDSCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "EDSCR")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "TXIDR_EL0_type"), Unknown)), (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_range((Nat_big_num.of_int 7),(Nat_big_num.of_int 0))), Unknown)), (Id_aux( (Id "DEPTH"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "TXIDR_EL0_type"), Unknown))), Unknown)), (Id_aux( (Id "TXIDR_EL0"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "TXIDR_EL0_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "TXIDR_EL0")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_ResetControlRegisters"), Unknown)), (P_aux( (P_id (Id_aux( (Id "cold_reset"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_abbrev( (T_id "boolean"), (T_id "bit"))), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "CurrentEL_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_range((Nat_big_num.of_int 3),(Nat_big_num.of_int 2))), Unknown)), (Id_aux( (Id "EL"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "CurrentEL_type"), Unknown))), Unknown)), (Id_aux( (Id "CurrentEL"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "CurrentEL_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "CurrentEL")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "DAIF_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 9)), Unknown)), (Id_aux( (Id "D"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 8)), Unknown)), (Id_aux( (Id "A"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 7)), Unknown)), (Id_aux( (Id "I"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 6)), Unknown)), (Id_aux( (Id "F"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "DAIF_type"), Unknown))), Unknown)), (Id_aux( (Id "DAIF"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "DAIF_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "NZCV_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 31)), Unknown)), (Id_aux( (Id "N"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 30)), Unknown)), (Id_aux( (Id "Z"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 29)), Unknown)), (Id_aux( (Id "C"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 28)), Unknown)), (Id_aux( (Id "V"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "NZCV_type"), Unknown))), Unknown)), (Id_aux( (Id "NZCV"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "NZCV_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "SP_EL0"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL0")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "SP_EL1"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "SP_EL2"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL2")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "SP_EL3"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL3")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "SPSel_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 0)), Unknown)), (Id_aux( (Id "SP"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "SPSel_type"), Unknown))), Unknown)), (Id_aux( (Id "SPSel"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "SPSel_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSel")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "SPSR_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 31)), Unknown)), (Id_aux( (Id "N"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 30)), Unknown)), (Id_aux( (Id "Z"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 29)), Unknown)), (Id_aux( (Id "C"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 28)), Unknown)), (Id_aux( (Id "V"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 21)), Unknown)), (Id_aux( (Id "SS"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 20)), Unknown)), (Id_aux( (Id "IL"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 9)), Unknown)), (Id_aux( (Id "E"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 8)), Unknown)), (Id_aux( (Id "A"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 7)), Unknown)), (Id_aux( (Id "I"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 6)), Unknown)), (Id_aux( (Id "F"), Unknown))); ((BF_aux( (BF_single(Nat_big_num.of_int 4)), Unknown)), (Id_aux( (Id "M4"), Unknown))); ((BF_aux( (BF_range((Nat_big_num.of_int 3),(Nat_big_num.of_int 0))), Unknown)), (Id_aux( (Id "M3_0"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "SPSR_type"), Unknown))), Unknown)), (Id_aux( (Id "SPSR_EL1"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "SPSR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSR_EL1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "SPSR_type"), Unknown))), Unknown)), (Id_aux( (Id "SPSR_EL2"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "SPSR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSR_EL2")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "SPSR_type"), Unknown))), Unknown)), (Id_aux( (Id "SPSR_EL3"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "SPSR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSR_EL3")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "ELR_EL1"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "ELR_EL1")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "ELR_EL2"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "ELR_EL2")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "ELR_EL3"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "ELR_EL3")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "SCRType"), Unknown))), Unknown)), (Id_aux( (Id "SCR"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SCR")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_register( (Id_aux( (Id "DBGOSDLR_type"), Unknown)), (Nexp_aux( (Nexp_constant thirtyone), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)), [((BF_aux( (BF_single(Nat_big_num.of_int 0)), Unknown)), (Id_aux( (Id "DLK"), Unknown))); ])), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "DBGOSDLR_type"), Unknown))), Unknown)), (Id_aux( (Id "DBGOSDLR"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "DBGOSDLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "DBGOSDLR")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_id (Id_aux( (Id "DBGPRCR_type"), Unknown))), Unknown)), (Id_aux( (Id "DBGPRCR"), Unknown)))), (Unknown,(Some ((T_abbrev( (T_id "DBGPRCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "DBGPRCR")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_alias( (Id_aux( (Id "PSTATE_N"), Unknown)), (AL_aux( (AL_subreg(
+ (RI_aux( (RI_id (Id_aux( (Id "NZCV"), Unknown))), (Unknown,(Some ((T_abbrev( (T_id "NZCV_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "N"), Unknown)))), (Unknown,(Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_alias( (Id_aux( (Id "PSTATE_Z"), Unknown)), (AL_aux( (AL_subreg(
+ (RI_aux( (RI_id (Id_aux( (Id "NZCV"), Unknown))), (Unknown,(Some ((T_abbrev( (T_id "NZCV_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "Z"), Unknown)))), (Unknown,(Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_alias( (Id_aux( (Id "PSTATE_C"), Unknown)), (AL_aux( (AL_subreg(
+ (RI_aux( (RI_id (Id_aux( (Id "NZCV"), Unknown))), (Unknown,(Some ((T_abbrev( (T_id "NZCV_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "C"), Unknown)))), (Unknown,(Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_alias( (Id_aux( (Id "PSTATE_V"), Unknown)), (AL_aux( (AL_subreg(
+ (RI_aux( (RI_id (Id_aux( (Id "NZCV"), Unknown))), (Unknown,(Some ((T_abbrev( (T_id "NZCV_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "V"), Unknown)))), (Unknown,(Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_alias( (Id_aux( (Id "PSTATE_D"), Unknown)), (AL_aux( (AL_subreg(
+ (RI_aux( (RI_id (Id_aux( (Id "DAIF"), Unknown))), (Unknown,(Some ((T_abbrev( (T_id "DAIF_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "D"), Unknown)))), (Unknown,(Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_alias( (Id_aux( (Id "PSTATE_A"), Unknown)), (AL_aux( (AL_subreg(
+ (RI_aux( (RI_id (Id_aux( (Id "DAIF"), Unknown))), (Unknown,(Some ((T_abbrev( (T_id "DAIF_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "A"), Unknown)))), (Unknown,(Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_alias( (Id_aux( (Id "PSTATE_I"), Unknown)), (AL_aux( (AL_subreg(
+ (RI_aux( (RI_id (Id_aux( (Id "DAIF"), Unknown))), (Unknown,(Some ((T_abbrev( (T_id "DAIF_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "I"), Unknown)))), (Unknown,(Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_alias( (Id_aux( (Id "PSTATE_F"), Unknown)), (AL_aux( (AL_subreg(
+ (RI_aux( (RI_id (Id_aux( (Id "DAIF"), Unknown))), (Unknown,(Some ((T_abbrev( (T_id "DAIF_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "F"), Unknown)))), (Unknown,(Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_alias( (Id_aux( (Id "PSTATE_EL"), Unknown)), (AL_aux( (AL_subreg(
+ (RI_aux( (RI_id (Id_aux( (Id "CurrentEL"), Unknown))), (Unknown,(Some ((T_abbrev( (T_id "CurrentEL_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "CurrentEL")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "EL"), Unknown)))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "PSTATE_nRW"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "PSTATE_nRW")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_alias( (Id_aux( (Id "PSTATE_SP"), Unknown)), (AL_aux( (AL_subreg(
+ (RI_aux( (RI_id (Id_aux( (Id "SPSel"), Unknown))), (Unknown,(Some ((T_abbrev( (T_id "SPSel_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSel")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "SP"), Unknown)))), (Unknown,(Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "PSTATE_E"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "PSTATE_E")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_reg_dec (DEC_aux( (DEC_reg( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "PSTATE_M"), Unknown)))), (Unknown,(Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "PSTATE_M")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), (P_aux( (P_tup [(P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "z"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "c"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "v"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "unit"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_Z"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "z"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_C"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "c"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_V"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "v"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "unit"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "wPSTATE_DAIF"), Unknown)), (P_aux( (P_tup [(P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "f"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "unit"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_D"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_A"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_I"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_F"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "f"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "unit"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "AccType"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "AccType_NORMAL"), Unknown)); (Id_aux( (Id "AccType_VEC"), Unknown)); (Id_aux( (Id "AccType_STREAM"), Unknown)); (Id_aux( (Id "AccType_VECSTREAM"), Unknown)); (Id_aux( (Id "AccType_ATOMIC"), Unknown)); (Id_aux( (Id "AccType_ORDERED"), Unknown)); (Id_aux( (Id "AccType_UNPRIV"), Unknown)); (Id_aux( (Id "AccType_IFETCH"), Unknown)); (Id_aux( (Id "AccType_PTW"), Unknown)); (Id_aux( (Id "AccType_DC"), Unknown)); (Id_aux( (Id "AccType_IC"), Unknown)); (Id_aux( (Id "AccType_AT"), Unknown))], false)), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "MBReqDomain"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "MBReqDomain_Nonshareable"), Unknown)); (Id_aux( (Id "MBReqDomain_InnerShareable"), Unknown)); (Id_aux( (Id "MBReqDomain_OuterShareable"), Unknown)); (Id_aux( (Id "MBReqDomain_FullSystem"), Unknown))], false)), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "MBReqTypes"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "MBReqTypes_Reads"), Unknown)); (Id_aux( (Id "MBReqTypes_Writes"), Unknown)); (Id_aux( (Id "MBReqTypes_All"), Unknown))], false)), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "BranchType"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "BranchType_CALL"), Unknown)); (Id_aux( (Id "BranchType_ERET"), Unknown)); (Id_aux( (Id "BranchType_DBGEXIT"), Unknown)); (Id_aux( (Id "BranchType_RET"), Unknown)); (Id_aux( (Id "BranchType_JMP"), Unknown)); (Id_aux( (Id "BranchType_EXCEPTION"), Unknown)); (Id_aux( (Id "BranchType_UNKNOWN"), Unknown))], false)), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "MoveWideOp"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "MoveWideOp_N"), Unknown)); (Id_aux( (Id "MoveWideOp_Z"), Unknown)); (Id_aux( (Id "MoveWideOp_K"), Unknown))], false)), (Unknown, (Some ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "M32_User"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "M32_FIQ"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "M32_IRQ"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "M32_Svc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "M32_Monitor"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "M32_Abort"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "M32_Hyp"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "M32_Undef"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "M32_System"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "DeviceType"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "DeviceType_GRE"), Unknown)); (Id_aux( (Id "DeviceType_nGRE"), Unknown)); (Id_aux( (Id "DeviceType_nGnRE"), Unknown)); (Id_aux( (Id "DeviceType_nGnRnE"), Unknown))], false)), (Unknown, (Some ((T_id "DeviceType"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "Fault"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "Fault_None"), Unknown)); (Id_aux( (Id "Fault_AccessFlag"), Unknown)); (Id_aux( (Id "Fault_Alignment"), Unknown)); (Id_aux( (Id "Fault_Background"), Unknown)); (Id_aux( (Id "Fault_Domain"), Unknown)); (Id_aux( (Id "Fault_Permission"), Unknown)); (Id_aux( (Id "Fault_Translation"), Unknown)); (Id_aux( (Id "Fault_AddressSize"), Unknown)); (Id_aux( (Id "Fault_SyncExternal"), Unknown)); (Id_aux( (Id "Fault_SyncExternalOnWalk"), Unknown)); (Id_aux( (Id "Fault_SyncParity"), Unknown)); (Id_aux( (Id "Fault_SyncParityOnWalk"), Unknown)); (Id_aux( (Id "Fault_AsyncParity"), Unknown)); (Id_aux( (Id "Fault_AsyncExternal"), Unknown)); (Id_aux( (Id "Fault_Debug"), Unknown)); (Id_aux( (Id "Fault_TLBConflict"), Unknown)); (Id_aux( (Id "Fault_Lockdown"), Unknown)); (Id_aux( (Id "Fault_Exclusive"), Unknown)); (Id_aux( (Id "Fault_ICacheMaint"), Unknown))], false)), (Unknown, (Some ((T_id "Fault"), (Tag_enum(Nat_big_num.of_int 18)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_record( (Id_aux( (Id "FaultRecord"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypQ_aux( TypQ_no_forall, Unknown)), [
+ ((Typ_aux( (Typ_id (Id_aux( (Id "Fault"), Unknown))), Unknown)), (Id_aux( (Id "type"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)), (Id_aux( (Id "acctype"), Unknown)));
+ ((Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fortyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fortyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "ipaddress"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "s2fs1walk"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "write"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "level"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "extflag"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "secondstage"), Unknown)));
+ ((Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "domain"), Unknown)));
+ ((Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "debugmoe"), Unknown)));], false)), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_record( (Id_aux( (Id "MemAttrHints"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypQ_aux( TypQ_no_forall, Unknown)), [
+ ((Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "attrs"), Unknown)));
+ ((Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "hints"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "transient"), Unknown)));], false)), (Unknown, (Some ((T_id "MemAttrHints"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "MemType"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "MemType_Normal"), Unknown)); (Id_aux( (Id "MemType_Device"), Unknown))], false)), (Unknown, (Some ((T_id "MemType"), (Tag_enum one), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_record( (Id_aux( (Id "MemoryAttributes"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypQ_aux( TypQ_no_forall, Unknown)), [
+ ((Typ_aux( (Typ_id (Id_aux( (Id "MemType"), Unknown))), Unknown)), (Id_aux( (Id "type"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "shareable"), Unknown)));], false)), (Unknown, (Some ((T_id "MemoryAttributes"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_record( (Id_aux( (Id "FullAddress"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypQ_aux( TypQ_no_forall, Unknown)), [
+ ((Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "physicaladdress"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "NS"), Unknown)));], false)), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_record( (Id_aux( (Id "AddressDescriptor"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypQ_aux( TypQ_no_forall, Unknown)), [
+ ((Typ_aux( (Typ_id (Id_aux( (Id "FaultRecord"), Unknown))), Unknown)), (Id_aux( (Id "fault"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "MemoryAttributes"), Unknown))), Unknown)), (Id_aux( (Id "memattrs"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "FullAddress"), Unknown))), Unknown)), (Id_aux( (Id "paddress"), Unknown)));], false)), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "PrefetchHint"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "Prefetch_READ"), Unknown)); (Id_aux( (Id "Prefetch_WRITE"), Unknown)); (Id_aux( (Id "Prefetch_EXEC"), Unknown))], false)), (Unknown, (Some ((T_id "PrefetchHint"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'S"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "ASR_C"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'S"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "LSL_C"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'S"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "LSR_C"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'S"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_le( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "ROR_C"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "IsZero"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "Replicate"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "SignExtend"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "ZeroExtend"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "Zeros"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "Ones"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "UInt"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "SInt"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "HighestSetBit"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "CountLeadingZeroBits"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'N"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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 "boolean"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "IsSecure"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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 "boolean"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "IsSecureBelowEL3"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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 "SCRType"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "SCR_GEN"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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 "boolean"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "UsingAArch32"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "ELUsingAArch32"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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 "boolean"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "Halted"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "HaveEL"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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 "boolean"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "HaveAnyAArch32"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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 "boolean"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "HighestELUsingAArch32"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "Unreachable"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_id (Id_aux( (Id "BranchType"), Unknown))), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "Hint_Branch"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "BranchType"), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "CountOp"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "CountOp_CLZ"), Unknown)); (Id_aux( (Id "CountOp_CLS"), Unknown)); (Id_aux( (Id "CountOp_CNT"), Unknown))], false)), (Unknown, (Some ((T_id "CountOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "ExtendType"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "ExtendType_SXTB"), Unknown)); (Id_aux( (Id "ExtendType_SXTH"), Unknown)); (Id_aux( (Id "ExtendType_SXTW"), Unknown)); (Id_aux( (Id "ExtendType_SXTX"), Unknown)); (Id_aux( (Id "ExtendType_UXTB"), Unknown)); (Id_aux( (Id "ExtendType_UXTH"), Unknown)); (Id_aux( (Id "ExtendType_UXTW"), Unknown)); (Id_aux( (Id "ExtendType_UXTX"), Unknown))], false)), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "RevOp"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "RevOp_RBIT"), Unknown)); (Id_aux( (Id "RevOp_REV16"), Unknown)); (Id_aux( (Id "RevOp_REV32"), Unknown)); (Id_aux( (Id "RevOp_REV64"), Unknown))], false)), (Unknown, (Some ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "ShiftType"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "ShiftType_LSL"), Unknown)); (Id_aux( (Id "ShiftType_LSR"), Unknown)); (Id_aux( (Id "ShiftType_ASR"), Unknown)); (Id_aux( (Id "ShiftType_ROR"), Unknown))], false)), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "LogicalOp"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "LogicalOp_AND"), Unknown)); (Id_aux( (Id "LogicalOp_EOR"), Unknown)); (Id_aux( (Id "LogicalOp_ORR"), Unknown))], false)), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "MemOp"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "MemOp_LOAD"), Unknown)); (Id_aux( (Id "MemOp_STORE"), Unknown)); (Id_aux( (Id "MemOp_PREFETCH"), Unknown))], false)), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "MemBarrierOp"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "MemBarrierOp_DSB"), Unknown)); (Id_aux( (Id "MemBarrierOp_DMB"), Unknown)); (Id_aux( (Id "MemBarrierOp_ISB"), Unknown))], false)), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "SystemHintOp"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "SystemHintOp_NOP"), Unknown)); (Id_aux( (Id "SystemHintOp_YIELD"), Unknown)); (Id_aux( (Id "SystemHintOp_WFE"), Unknown)); (Id_aux( (Id "SystemHintOp_WFI"), Unknown)); (Id_aux( (Id "SystemHintOp_SEV"), Unknown)); (Id_aux( (Id "SystemHintOp_SEVL"), Unknown))], false)), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "PSTATEField"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "PSTATEField_DAIFSet"), Unknown)); (Id_aux( (Id "PSTATEField_DAIFClr"), Unknown)); (Id_aux( (Id "PSTATEField_SP"), Unknown))], false)), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "rPC"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "rSP"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "wX"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "rX"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64;Nat_big_num.of_int 128])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "SIMD_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "wV"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64;Nat_big_num.of_int 128])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "SIMD_index"), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "rV"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64;Nat_big_num.of_int 128])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "SIMD_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "rVpart"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))); (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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 "SCTLR_type"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "SCTLR'"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "AArch64_UndefinedFault"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "AddressDescriptor"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "AArch64_TranslateAddress"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_id "AddressDescriptor"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "AArch64_WFxTrap"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "FaultRecord"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "AArch64_AlignmentFault"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_id "FaultRecord"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "AArch64_ResetGeneralRegisters"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "AArch64_ResetSIMDFPRegisters"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "AArch64_ResetSpecialRegisters"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "integer"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "AArch64_IsExclusiveVA"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "DoubleLockStatus"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "ELUsingAArch32"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "DBGOSDLR"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "DBGOSDLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "DLK"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "DBGPRCR"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "DBGPRCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "CORENPDRQ"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_var "'nv87"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_var "'nv87"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_var "'nv87"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_var "'nv87"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_var "'nv87"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "Halted"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "OSDLR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "OSDLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "DLK"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv207")); (T_arg_nexp (Ne_var "'nv206"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv207")); (T_arg_nexp (Ne_var "'nv206"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv207")); (T_arg_nexp (Ne_var "'nv206"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv207")); (T_arg_nexp (Ne_var "'nv206"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv207")); (T_arg_nexp (Ne_var "'nv206"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "DBGPRCR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "DBGPRCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "CORENPDRQ"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv192")); (T_arg_nexp (Ne_var "'nv191"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv192")); (T_arg_nexp (Ne_var "'nv191"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv192")); (T_arg_nexp (Ne_var "'nv191"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv192")); (T_arg_nexp (Ne_var "'nv191"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv192")); (T_arg_nexp (Ne_var "'nv191"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "Halted"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_enum( (Id_aux( (Id "signalValue"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), [(Id_aux( (Id "LOw"), Unknown)); (Id_aux( (Id "HIGH"), Unknown))], false)), (Unknown, (Some ((T_id "signalValue"), (Tag_enum one), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "signalValue"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "signalDBGEN"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "signalDBGEN"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "signalValue"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "signalValue"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "signalValue"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "signalValue"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "signelNIDEN"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "signalNIDEN"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "signalValue"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "signalValue"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "signalValue"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "signalValue"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "signalSPIDEN"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "signalSPIDEN"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "signalValue"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "signalValue"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "signalValue"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "signalValue"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "signalDPNIDEN"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "signalSPNIDEN"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "signalValue"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "signalValue"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "signalValue"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ExternalInvasiveDebugEnabled"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "signalDBGEN"), Unknown)), [])), (Unknown, (Some ((T_id "signalValue"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "HIGH"), Unknown))), (Unknown, (Some ((T_id "signalValue"), (Tag_enum one), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ExternalSecureInvasiveDebugEnabled"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "IsSecure"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "ExternalInvasiveDebugEnabled"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "signalSPIDEN"), Unknown)), [])), (Unknown, (Some ((T_id "signalValue"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "HIGH"), Unknown))), (Unknown, (Some ((T_id "signalValue"), (Tag_enum one), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "DCPSInstruction"), Unknown)), (P_aux( (P_id (Id_aux( (Id "target_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "DCPSInstruction"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "DRPSInstruction"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "DRPSInstruction"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_Breakpoint"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_EDBGRQ"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_Step_Normal"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_Step_Exclusive"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_OSUnlockCatch"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_ResetCatch"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_Watchpoint"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_HaltInstruction"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_SoftwareAccess"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_ExceptionCatch"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "DebugHalt_Step_NoSyndrome"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Halt"), Unknown)), (P_aux( (P_id (Id_aux( (Id "reason"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "Halt"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Halted"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "EDSCR"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "EDSCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "STATUS"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "EDSCR"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "EDSCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "STATUS"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv10")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "HaltingAllowed"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "Halted"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "DoubleLockStatus"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "IsSecure"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ExternalSecureInvasiveDebugEnabled"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ExternalInvasiveDebugEnabled"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ReservedValue"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "AArch64_UndefinedFault"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "AArch64_UndefinedFault"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "IsFault"), Unknown)), (P_aux( (P_id (Id_aux( (Id "addrdesc"), Unknown))), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "addrdesc"), Unknown))), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "fault"), Unknown)))), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "type"), Unknown)))), (Unknown, (Some ((T_id "Fault"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_id (Id_aux( (Id "Fault_None"), Unknown))), (Unknown, (Some ((T_id "Fault"), (Tag_enum(Nat_big_num.of_int 18)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "AddressDescriptor"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ASR"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "result'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "ASR_C"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'S"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))]), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ASR_C"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "extended_x"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "extended_x"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv109")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv81"); (Ne_var "'nv82")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv49"), (Ne_var "'nv50"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "carry_out"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector_access( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "extended_x"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv118"), (Ne_var "'nv119"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_tuple [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "carry_out"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "uinteger"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Align'"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "y"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "y"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_id (Id_aux( (Id "y"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv29"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv13"), (Ne_var "'nv14"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Align"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "y"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Align'"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv2"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "y"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "CountLeadingSignBits"), Unknown)), (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "CountLeadingZeroBits"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv158")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv132"), (Ne_var "'nv133"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv85"), (Ne_const zero))); (Ne_const one)])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv85"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv80")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv85"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "^"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv119")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv93"), (Ne_var "'nv94"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv85")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv85"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv80")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv85"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv80")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv85"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_xor")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv85"), (Ne_const zero))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv85"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv85"), (Ne_const zero))); (Ne_const one)]))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'N"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'N"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "CountLeadingZeroBits"), Unknown)), (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "HighestSetBit"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)]))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "Some"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv98")); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)]))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv72"), (Ne_var "'nv73"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv40"), (Ne_var "'nv41"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv40"), (Ne_var "'nv41"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv40"), (Ne_var "'nv41"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)]))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv1"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv1"); (Ne_const one)]))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_le( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "Extend"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Extend"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "unsigned"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "unsigned"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "HighestSetBit"), Unknown)), (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bool"), Unknown))), Unknown)), (Id_aux( (Id "break"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_for( (Id_aux( (Id "i"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv10"), (Ne_var "'nv11"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Ord_aux( Ord_dec, Unknown)),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "break"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv7"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv77"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv77"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv77"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv77"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv77"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv7"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "break"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))) ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "break"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "integer"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Int"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv2"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv6"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "IsZero"), Unknown)), (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "IsZeroBit"), Unknown)), (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "IsZero"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_id "bit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "LSL"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "result'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "LSL_C"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'S"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))]), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "LSL_C"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "extended_x"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_var "'N"); (Ne_var "'S")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "extended_x"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv10")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "carry_out"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector_access( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "extended_x"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_tuple [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "carry_out"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "LSR"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "result'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "LSR_C"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'S"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))]), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "LSR_C"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "extended_x"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "extended_x"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv109")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv81"); (Ne_var "'nv82")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv49"), (Ne_var "'nv50"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "carry_out"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector_access( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "extended_x"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv118"), (Ne_var "'nv119"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_tuple [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "carry_out"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv7"), (Ne_var "'S"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "integer"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Min"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "b"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "<="), Unknown)), (E_aux( (E_id (Id_aux( (Id "b"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "lteq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "b"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)])))))]), (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "uinteger"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "uMin"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "b"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "<="), Unknown)), (E_aux( (E_id (Id_aux( (Id "b"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "lteq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "b"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "NOT"), Unknown)), (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_not")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "bit"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "NOT'"), Unknown)), (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "bit"), (T_id "bit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Ones"), Unknown)), (P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Replicate"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ROR"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "result'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "ROR_C"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'S"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_le( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))]), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ROR_C"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "nat"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "mod"), Unknown)), (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_minus( (Ne_var "'nv9"), (Ne_const one))))]))), (Tag_extern (Some "modulo")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "LSR"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "LSL"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv46"), (Ne_var "'nv47"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_or")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "carry_out"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector_access( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv78"), (Ne_var "'nv79"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_tuple [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "carry_out"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Replicate"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "M"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))]))); (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))]))); (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))]))); (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "mod"), Unknown)), (E_aux( (E_id (Id_aux( (Id "M"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_minus( (Ne_var "'nv31"), (Ne_const one))))]))), (Tag_extern (Some "modulo")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "zeros"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_var "'M"))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_var "'M")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_var "'M"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_var "'M"))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_var "'M")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_var "'M"))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_var "'M")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_for( (Id_aux( (Id "i"), Unknown)), (E_aux( (E_id (Id_aux( (Id "M"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_var "'nv8"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "M"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Ord_aux( Ord_inc, Unknown)),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "<<"), Unknown)), (E_aux( (E_id (Id_aux( (Id "M"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_leftshift")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "zeros"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_var "'M"))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_var "'M")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv50")); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_var "'M")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv52")); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_var "'M"))); (Ne_var "'M")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_var "'M"))); (Ne_var "'M")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_or")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))) ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "SInt"), Unknown)), (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "signed"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv4"))]))), (Tag_extern (Some "signed")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv4"))]))), (Tag_extern (Some "signed")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "SignExtend"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_as( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "h"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "remainder"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_var "'nv2")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "x"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Replicate"), Unknown)), [
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "h"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_add [(Ne_var "'nv2"); (Ne_const one)])))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_add [(Ne_var "'nv2"); (Ne_const one)])))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_add [(Ne_var "'nv2"); (Ne_const one)])))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))); (Ne_add [(Ne_var "'nv2"); (Ne_const one)])]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_add [(Ne_var "'nv2"); (Ne_const one)]))); (Ne_add [(Ne_var "'nv2"); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv2"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv2"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "UInt"), Unknown)), (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "unsigned"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv4"))]))), (Tag_extern (Some "unsigned")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ZeroExtend"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'M"), (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1))))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_mult( (Ne_var "'M"), (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))))]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_mult( (Ne_var "'M"), (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))))]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_mult( (Ne_var "'M"), (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))))])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_mult( (Ne_var "'M"), (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))))]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_mult( (Ne_var "'M"), (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))))])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_mult( (Ne_var "'M"), (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))))]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_mult( (Ne_var "'M"), (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))))])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_mult( (Ne_var "'M"), (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))))]); (Ne_var "'M")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'N"); (Ne_mult( (Ne_var "'M"), (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))))]); (Ne_var "'M")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Zeros"), Unknown)), (P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "BitReverse"), Unknown)), (P_aux( (P_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_for( (Id_aux( (Id "i"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv10"), (Ne_var "'nv11"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Ord_aux( Ord_inc, Unknown)),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv6"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv93"), (Ne_var "'nv94"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv67"), (Ne_var "'nv68"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_vector_access( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv6"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))) ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "HaveCRCExt"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "IMPLEMENTATION_DEFINED"), Unknown))), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "HaveCRCExt"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Poly32Mod2"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "poly"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id ">"), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "gt")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "data'"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_minus( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant thirtytwo), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_minus( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant thirtytwo), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "zeros"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [(E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_for( (Id_aux( (Id "i"), Unknown)), (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv15"), (Ne_var "'nv16"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Ord_aux( Ord_dec, Unknown)),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_var "'nv12"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_var "'nv57"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_var "'nv57"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_var "'nv57"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_var "'nv57"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_var "'nv57"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector_range(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "data'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_var "'nv12"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv66"), (Ne_var "'nv67"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv63")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv63"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_var "'nv12"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv209"), (Ne_var "'nv210"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv205")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv63"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv163")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv63"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "^"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "poly"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv166")); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "zeros"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_minus( (Ne_var "'N"), (Ne_const thirtytwo)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_var "'nv12"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num(Nat_big_num.of_int 33)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 33)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv176"), (Ne_var "'nv177"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv172")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv172"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv172"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const thirtytwo); (Ne_add [(Ne_minus( (Ne_var "'nv172"), (Ne_const zero))); (Ne_const one)])]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_add [(Ne_minus( (Ne_var "'nv172"), (Ne_const zero))); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv163")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv63"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv163")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv63"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_xor")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv63")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv63"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))) ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ClearExclusiveByAddress"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "paddress"), Unknown))), (Unknown, (Some ((T_id "FullAddress"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "processorid"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "FullAddress"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "The model does not implement the exclusive monitors explicitly."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "FullAddress"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ClearExclusiveLocal"), Unknown)), (P_aux( (P_id (Id_aux( (Id "processorid"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "int"), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "The model does not implement the exclusive monitors explicitly."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_abbrev( (T_id "int"), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "bit"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ExclusiveMonitorsStatus"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "The model does not implement the exclusive monitors explicitly."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "ExclusiveMonitorsStatus should not be called"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "bit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "IsExclusiveGlobal"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "paddress"), Unknown))), (Unknown, (Some ((T_id "FullAddress"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "processorid"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "FullAddress"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "The model does not implement the exclusive monitors explicitly."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "FullAddress"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "IsExclusiveLocal"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "paddress"), Unknown))), (Unknown, (Some ((T_id "FullAddress"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "processorid"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "FullAddress"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "The model does not implement the exclusive monitors explicitly."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "FullAddress"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "MarkExclusiveGlobal"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "paddress"), Unknown))), (Unknown, (Some ((T_id "FullAddress"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "processorid"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "FullAddress"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "The model does not implement the exclusive monitors explicitly."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "FullAddress"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "MarkExclusiveLocal"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "paddress"), Unknown))), (Unknown, (Some ((T_id "FullAddress"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "processorid"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "FullAddress"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "The model does not implement the exclusive monitors explicitly."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "FullAddress"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "integer"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ProcessorID"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AddWithCarry"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "y"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "unsigned_sum"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv116"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "y"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv114"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv85"); (Ne_var "'nv86")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv76"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv47"); (Ne_var "'nv48")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "integer"), Unknown))), Unknown)), (Id_aux( (Id "signed_sum"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "SInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv232"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "y"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv230"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv201"); (Ne_var "'nv202")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv192"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv163"); (Ne_var "'nv164")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "x"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "unsigned_sum"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector_access( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv268")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv242"), (Ne_var "'nv243"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "z"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "IsZero"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "c"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv287"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "unsigned_sum"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "v"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "SInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv304"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "signed_sum"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_tuple [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv306")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "z"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv310")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "c"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv314")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "v"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv316")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const one); (Ne_const one)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv312")); (T_arg_nexp (Ne_var "'nv311")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const one); (Ne_var "'nv311")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_var "'nv311")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const one); (Ne_var "'nv307")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_var "'nv307")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "BigEndian"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "bigend"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "UsingAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "bigend"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_E"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "PSTATE_E")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "bigend"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "SCTLR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "E0E"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "bigend"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_app( (Id_aux( (Id "SCTLR'"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "EE"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "bigend"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'W"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'W"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64;Nat_big_num.of_int 128])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'W"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'W"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'W"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'W"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "BigEndianReverse"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_fundef (FD_aux( (FD_function( (Rec_aux( Rec_rec, Unknown)), (Typ_annot_opt_aux( (Typ_annot_opt_some( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'W"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'W"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64;Nat_big_num.of_int 128])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'W"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'W"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "BigEndianReverse"), Unknown)), (P_aux( (P_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "width"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'W"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "half"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "width"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv7"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "width"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "BigEndianReverse"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "half"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv41"), (Ne_var "'nv42"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv37")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv37"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv37"), (Ne_const zero))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv37"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv37"), (Ne_const zero))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv37"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv37"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "BigEndianReverse"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "width"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv75"), (Ne_var "'nv76"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "half"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv71")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv71"), (Ne_var "'nv72"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv71"), (Ne_var "'nv72"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv71"), (Ne_var "'nv72"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv71"), (Ne_var "'nv72"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv71"), (Ne_var "'nv72"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv32")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv71"), (Ne_var "'nv72"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv37"), (Ne_const zero))); (Ne_const one)]); (Ne_add [(Ne_minus( (Ne_var "'nv71"), (Ne_var "'nv72"))); (Ne_const one)])]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv37"), (Ne_const zero))); (Ne_const one)]); (Ne_add [(Ne_minus( (Ne_var "'nv71"), (Ne_var "'nv72"))); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'W"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'W")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "DataMemoryBarrier_Reads"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "DataMemoryBarrier_Writes"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "DataMemoryBarrier_All"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "DataMemoryBarrier"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "MBReqDomain"); (T_id "MBReqTypes")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MBReqDomain_FullSystem"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MBReqDomain_InnerShareable"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "DataMemoryBarrier: not MBReqDomain_FullSystem or _InnerShareable"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MBReqTypes_Reads"), Unknown)), [])), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DataMemoryBarrier_Reads"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MBReqTypes_Writes"), Unknown)), [])), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DataMemoryBarrier_Writes"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MBReqTypes_All"), Unknown)), [])), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DataMemoryBarrier_All"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "MBReqDomain"); (T_id "MBReqTypes")]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "DataSynchronizationBarrier_Reads"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "DataSynchronizationBarrier_Writes"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "DataSynchronizationBarrier_All"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "DataSynchronizationBarrier"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "MBReqDomain"); (T_id "MBReqTypes")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MBReqDomain_FullSystem"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "DataSynchronizationBarrier: not MBReqDomain_FullSystem"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MBReqTypes_Reads"), Unknown)), [])), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DataSynchronizationBarrier_Reads"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MBReqTypes_Writes"), Unknown)), [])), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DataSynchronizationBarrier_Writes"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MBReqTypes_All"), Unknown)), [])), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DataSynchronizationBarrier_All"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "MBReqDomain"); (T_id "MBReqTypes")]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( TypQ_no_forall, Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "PrefetchHint"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "integer"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "Hint_Prefetch"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "PrefetchHint"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Hint_Prefetch"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "addr"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "hint"), Unknown))), (Unknown, (Some ((T_id "PrefetchHint"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "target"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "stream"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "PrefetchHint"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "PrefetchHint"); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "rMem_NORMAL"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "rMem_STREAM"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "rMem_ORDERED"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "rMem_ATOMIC"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "rMem_ATOMIC_ORDERED"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_record( (Id_aux( (Id "read_buffer_type"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypQ_aux( TypQ_no_forall, Unknown)), [
+ ((Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)), (Id_aux( (Id "acctype"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "bool"), Unknown))), Unknown)), (Id_aux( (Id "exclusive"), Unknown)));
+ ((Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "address"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "size"), Unknown)));], false)), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "empty_read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_record (FES_aux( (FES_Fexps( [(FE_aux( (FE_Fexp( (Id_aux( (Id "size"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "acctype"), Unknown)), (E_aux( (E_id (Id_aux( (Id "AccType_NORMAL"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "exclusive"), Unknown)), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "address"), Unknown)), (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None)))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "read_buffer_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "_rMem"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "desc"), Unknown))), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "read_buffer_type"); (T_id "AddressDescriptor"); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "bool"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_record (FES_aux( (FES_Fexps( [
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "acctype"), Unknown)), (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "exclusive"), Unknown)), (E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "address"), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "desc"), Unknown))), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "paddress"), Unknown)))), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "physicaladdress"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "size"), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None)))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix(
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "exclusive"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv76")); (T_arg_nexp (Ne_var "'nv77")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv76")); (T_arg_nexp (Ne_var "'nv77")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv65")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "desc"), Unknown))), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "paddress"), Unknown)))), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "physicaladdress"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_record_update( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (FES_aux( (FES_Fexps( [
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "size"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv97"); (Ne_var "'nv98")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv97"); (Ne_var "'nv98")]))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None))))), (Unknown,(Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "read_buffer_type"); (T_id "AddressDescriptor"); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "bool"), (T_id "bit")))]), (T_id "read_buffer_type"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "flush_read_buffer"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "read_buffer_type"); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "value"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "exclusive"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_ATOMIC"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rMem_ATOMIC"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv14"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv14"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_ORDERED"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rMem_ATOMIC_ORDERED"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv15"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv15"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "unimplemented memory access"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_NORMAL"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rMem_NORMAL"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv16"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv16"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_STREAM"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rMem_STREAM"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv17"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv17"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_UNPRIV"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rMem_NORMAL"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv18"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv18"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_ORDERED"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rMem_ORDERED"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv19"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv19"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_ATOMIC"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assert( (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "Reached AccType_ATOMIC: unreachable when address values are known"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "BigEndian"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "BigEndianReverse"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "read_buffer_type"); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "wMem_Addr_NORMAL"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "wMem_Addr_ORDERED"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "wMem_Addr_ATOMIC"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "wMem_Addr_ATOMIC_ORDERED"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "wMem_Addr"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_id "AccType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_app( (Id_aux( (Id "AccType_NORMAL"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Addr_NORMAL"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_app( (Id_aux( (Id "AccType_STREAM"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Addr_NORMAL"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_app( (Id_aux( (Id "AccType_UNPRIV"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Addr_NORMAL"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_app( (Id_aux( (Id "AccType_ORDERED"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Addr_ORDERED"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_app( (Id_aux( (Id "AccType_ATOMIC"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Addr_ATOMIC"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_app( (Id_aux( (Id "AccType_ORDERED"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "bit"); (T_id "AccType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Addr_ATOMIC_ORDERED"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_eamem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_tup [(T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_id "AccType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "unrecognised memory access"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "wMem_Val_NORMAL"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "bool"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "wMem_Val_ATOMIC"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_abbrev( (T_id "bool"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_record( (Id_aux( (Id "write_buffer_type"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypQ_aux( TypQ_no_forall, Unknown)), [
+ ((Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)), (Id_aux( (Id "acctype"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "bool"), Unknown))), Unknown)), (Id_aux( (Id "exclusive"), Unknown)));
+ ((Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "address"), Unknown)));
+ ((Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "value"), Unknown)));
+ ((Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "size"), Unknown)));], false)), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_val (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "empty_write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_record (FES_aux( (FES_Fexps( [(FE_aux( (FE_Fexp( (Id_aux( (Id "size"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "acctype"), Unknown)), (E_aux( (E_id (Id_aux( (Id "AccType_NORMAL"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "exclusive"), Unknown)), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "address"), Unknown)), (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "value"), Unknown)), (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num onetwentyeight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyeight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None)))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "write_buffer_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "_wMem"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "desc"), Unknown))), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "write_buffer_type"); (T_id "AddressDescriptor"); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "bool"), (T_id "bit"))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_record (FES_aux( (FES_Fexps( [
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "acctype"), Unknown)), (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "exclusive"), Unknown)), (E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "address"), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "desc"), Unknown))), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "paddress"), Unknown)))), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "physicaladdress"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "value"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num onetwentyeight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyeight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const onetwentyeight); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "size"), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None)))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix(
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "exclusive"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv79")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv78")); (T_arg_nexp (Ne_var "'nv79")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv67")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "desc"), Unknown))), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "paddress"), Unknown)))), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "physicaladdress"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_record_update( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (FES_aux( (FES_Fexps( [
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "value"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num onetwentyeight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyeight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv130")); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "value"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv134")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv186"), (Ne_var "'nv187"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv158"), (Ne_var "'nv159"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv136")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv136"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv132")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv136"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_add [(Ne_minus( (Ne_var "'nv136"), (Ne_const zero))); (Ne_const one)])]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_add [(Ne_minus( (Ne_var "'nv136"), (Ne_const zero))); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv128"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv128")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const onetwentyeight); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "size"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv99"); (Ne_var "'nv100")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv99"); (Ne_var "'nv100")]))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None))))), (Unknown,(Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "write_buffer_type"); (T_id "AddressDescriptor"); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "bool"), (T_id "bit"))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "write_buffer_type"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "flush_write_buffer"), Unknown)), (P_aux( (P_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "exclusive"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_NORMAL"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Val_NORMAL"), Unknown)), [(E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "value"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv65"), (Ne_var "'nv66"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv37"), (Ne_var "'nv38"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_mult( (Ne_var "'nv11"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv11"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv11"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_STREAM"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Val_NORMAL"), Unknown)), [(E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "value"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv133"), (Ne_var "'nv134"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv105"), (Ne_var "'nv106"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv83")); (T_arg_nexp (Ne_mult( (Ne_var "'nv79"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv79"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv79"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_UNPRIV"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Val_NORMAL"), Unknown)), [(E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "value"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv149")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv201"), (Ne_var "'nv202"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv173"), (Ne_var "'nv174"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv151")); (T_arg_nexp (Ne_mult( (Ne_var "'nv147"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv147"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv147"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_ORDERED"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Val_NORMAL"), Unknown)), [(E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "value"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv217")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv269"), (Ne_var "'nv270"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv241"), (Ne_var "'nv242"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv219")); (T_arg_nexp (Ne_mult( (Ne_var "'nv215"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv215"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv215"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "unrecognised memory access"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "write_buffer_type"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "flush_write_buffer_exclusive"), Unknown)), (P_aux( (P_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "exclusive"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_ATOMIC"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Val_ATOMIC"), Unknown)), [(E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "value"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv54"), (Ne_var "'nv55"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv26"), (Ne_var "'nv27"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_mult( (Ne_var "'nv0"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv0"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv0"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "AccType_ORDERED"), Unknown)), [])), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Val_ATOMIC"), Unknown)), [(E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "value"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv122"), (Ne_var "'nv123"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv94"), (Ne_var "'nv95"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv72")); (T_arg_nexp (Ne_mult( (Ne_var "'nv68"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv68"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv68"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "unrecognised memory access"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "write_buffer_type"), (T_abbrev( (T_id "bool"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "BranchTo"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "target"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "BranchType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "target'"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Hint_Branch"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app( (Id_aux( (Id "UsingAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_PC"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "_PC")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "_PC")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "_PC")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv65")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv65"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "UsingAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix(
+ (E_aux( (E_case(
+ (E_aux( (E_vector_access(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fiftyfive), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fiftyfive))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv139")); (T_arg_nexp (Ne_var "'nv138"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv139")); (T_arg_nexp (Ne_var "'nv138"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv139")); (T_arg_nexp (Ne_var "'nv138"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv139")); (T_arg_nexp (Ne_var "'nv138"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv139")); (T_arg_nexp (Ne_var "'nv138"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_case(
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "TCR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "TCR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TBI1"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux(
+ (LEXP_vector_range(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtythree), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fiftysix), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fiftysix))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_minus( (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant fiftysix), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_case(
+ (E_aux( (E_vector_access(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fiftyfive), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fiftyfive))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv216")); (T_arg_nexp (Ne_var "'nv215"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv216")); (T_arg_nexp (Ne_var "'nv215"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv216")); (T_arg_nexp (Ne_var "'nv215"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv216")); (T_arg_nexp (Ne_var "'nv215"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv216")); (T_arg_nexp (Ne_var "'nv215"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "TCR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "TCR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TBI0"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv198")); (T_arg_nexp (Ne_var "'nv197"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv198")); (T_arg_nexp (Ne_var "'nv197"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv198")); (T_arg_nexp (Ne_var "'nv197"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv198")); (T_arg_nexp (Ne_var "'nv197"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv198")); (T_arg_nexp (Ne_var "'nv197"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector_range(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtythree), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fiftysix), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fiftysix))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_minus( (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant fiftysix), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv223")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv225")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix(
+ (E_aux( (E_case(
+ (E_aux( (E_vector_access(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fiftyfive), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fiftyfive))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv296")); (T_arg_nexp (Ne_var "'nv295"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv296")); (T_arg_nexp (Ne_var "'nv295"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv296")); (T_arg_nexp (Ne_var "'nv295"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv296")); (T_arg_nexp (Ne_var "'nv295"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv296")); (T_arg_nexp (Ne_var "'nv295"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_case(
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "TCR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "TCR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TBI1"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv278")); (T_arg_nexp (Ne_var "'nv277"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv278")); (T_arg_nexp (Ne_var "'nv277"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv278")); (T_arg_nexp (Ne_var "'nv277"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv278")); (T_arg_nexp (Ne_var "'nv277"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv278")); (T_arg_nexp (Ne_var "'nv277"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux(
+ (LEXP_vector_range(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtythree), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fiftysix), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fiftysix))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_minus( (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant fiftysix), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_case(
+ (E_aux( (E_vector_access(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fiftyfive), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fiftyfive))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv373")); (T_arg_nexp (Ne_var "'nv372"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv373")); (T_arg_nexp (Ne_var "'nv372"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv373")); (T_arg_nexp (Ne_var "'nv372"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv373")); (T_arg_nexp (Ne_var "'nv372"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv373")); (T_arg_nexp (Ne_var "'nv372"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "TCR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "TCR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TBI0"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv355")); (T_arg_nexp (Ne_var "'nv354"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv355")); (T_arg_nexp (Ne_var "'nv354"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv355")); (T_arg_nexp (Ne_var "'nv354"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv355")); (T_arg_nexp (Ne_var "'nv354"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv355")); (T_arg_nexp (Ne_var "'nv354"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector_range(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtythree), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fiftysix), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fiftysix))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_minus( (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant fiftysix), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv380")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv382")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_case(
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "TCR_EL2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "TCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TBI"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv397")); (T_arg_nexp (Ne_var "'nv396"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv397")); (T_arg_nexp (Ne_var "'nv396"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv397")); (T_arg_nexp (Ne_var "'nv396"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv397")); (T_arg_nexp (Ne_var "'nv396"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv397")); (T_arg_nexp (Ne_var "'nv396"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux(
+ (LEXP_vector_range(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtythree), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fiftysix), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fiftysix))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_minus( (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant fiftysix), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv401")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv403")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_case(
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "TCR_EL3"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "TCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TBI"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv418")); (T_arg_nexp (Ne_var "'nv417"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv418")); (T_arg_nexp (Ne_var "'nv417"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv418")); (T_arg_nexp (Ne_var "'nv417"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv418")); (T_arg_nexp (Ne_var "'nv417"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv418")); (T_arg_nexp (Ne_var "'nv417"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux(
+ (LEXP_vector_range(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtythree), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fiftysix), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fiftysix))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_minus( (Nexp_aux( (Nexp_constant sixtythree), Unknown)), (Nexp_aux( (Nexp_constant fiftysix), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const fiftysix))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assert( (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_PC"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "_PC")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "target'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "_PC")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "_PC")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "BranchType")]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Hint_Branch"), Unknown)), (P_aux( (P_id (Id_aux( (Id "hint"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "This hint can be used for hardware optimization that has no effect on the model."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "BranchType"), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ResetExternalDebugRegisters"), Unknown)), (P_aux( (P_id (Id_aux( (Id "b"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "ResetExternalDebugRegisters"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_abbrev( (T_id "boolean"), (T_id "bit"))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "ThisInstrAddr"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ThisInstrAddr"), Unknown)), (P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "UsingAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rPC"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv89")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rSPSR"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "UsingAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "rSPSR UsingAArch32"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "SPSR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SPSR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSR_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "SPSR_EL2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SPSR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSR_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "SPSR_EL3"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SPSR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSR_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Unreachable"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ClearEventRegister"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "ClearEventRegister"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ConditionHolds"), Unknown)), (P_aux( (P_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const three), (Ne_const one))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "PSTATE_Z"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "PSTATE_C"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "PSTATE_N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "PSTATE_V"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "PSTATE_C"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "PSTATE_Z"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_V"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_V"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "PSTATE_Z"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv180")); (T_arg_nexp (Ne_var "'nv179"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv180")); (T_arg_nexp (Ne_var "'nv179"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv180")); (T_arg_nexp (Ne_var "'nv179"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv180")); (T_arg_nexp (Ne_var "'nv179"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv180")); (T_arg_nexp (Ne_var "'nv179"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv238")); (T_arg_nexp (Ne_var "'nv237"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv238")); (T_arg_nexp (Ne_var "'nv237"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv238")); (T_arg_nexp (Ne_var "'nv237"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv238")); (T_arg_nexp (Ne_var "'nv237"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv238")); (T_arg_nexp (Ne_var "'nv237"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv218")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv220")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ELUsingAArch32"), Unknown)), (P_aux( (P_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "EventRegisterSet"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "EventRegisterSet"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "EventRegistered"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "EventRegistered"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "HaveAArch32EL"), Unknown)), (P_aux( (P_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "HaveAnyAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HighestELUsingAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "IMPLEMENTATION_DEFINED"), Unknown))), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "HaveAArch32EL"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "HaveAnyAArch32"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "IMPLEMENTATION_DEFINED"), Unknown))), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "HaveAnyAArch32"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "HaveEL"), Unknown)), (P_aux( (P_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv10")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "IMPLEMENTATION_DEFINED"), Unknown))), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "HaveEL2"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "IMPLEMENTATION_DEFINED"), Unknown))), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "HaveEL3"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "HighestELUsingAArch32"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "HaveAnyAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "IMPLEMENTATION_DEFINED"), Unknown))), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "HighestELUsingAArch32"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Hint_Yield"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "InstructionSynchronizationBarrier"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "InterruptPending"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "InterruptPending"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "IsSecure"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "UsingAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "UsingAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_M"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "PSTATE_M")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "M32_Monitor"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "IsSecureBelowEL3"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "IsSecureBelowEL3"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_field(
+ (E_aux( (E_app( (Id_aux( (Id "SCR_GEN"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "NS"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'nv13"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'nv13"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'nv13"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'nv13"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_var "'nv13"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "IMPLEMENTATION_DEFINED"), Unknown))), (Unknown, (Some ((T_id "IMPLEMENTATION_DEFINED_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "IsSecureBelowEL3"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "SCRType"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "SCR_GEN"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HighestELUsingAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SCR"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SCR_EL3"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "SendEvent"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Unreachable"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "Unreachable reached"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "UsingAArch32"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "WaitForEvent"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "WaitForEvent"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "WaitForInterrupt"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "not_implemented_extern"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "WaitForInterrupt"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "uinteger"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "PAMax"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "pa_size"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "ID_AA64MMFR0_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "ID_AA64MMFR0_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "PARange"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "pa_size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "pa_size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num(Nat_big_num.of_int 36)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 36)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "pa_size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num forty), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const forty))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "pa_size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num(Nat_big_num.of_int 42)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 42)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "pa_size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num(Nat_big_num.of_int 44)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 44)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "pa_size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num fortyeight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fortyeight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Unreachable"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "pa_size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "S1TranslationRegime"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "IsSecure"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ELUsingAArch32"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_Abort"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "vaddress"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "fault"), Unknown))), (Unknown, (Some ((T_id "FaultRecord"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "FaultRecord")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_Abort"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "FaultRecord")]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_SPAlignmentFault"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_SPAlignmentFault"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_SoftwareBreakpoint"), Unknown)), (P_aux( (P_id (Id_aux( (Id "immediate"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_SoftwareBreakpoint"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_TakeReset"), Unknown)), (P_aux( (P_id (Id_aux( (Id "cold_reset"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "HighestELUsingAArch32"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_nRW"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "PSTATE_nRW")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "PSTATE_nRW")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "CurrentEL")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_field( (LEXP_aux( (LEXP_id (Id_aux( (Id "SCR_EL3"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "NS"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "CurrentEL")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "CurrentEL")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_ResetControlRegisters"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "cold_reset"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_SP"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SPSel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_DAIF"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_SS"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_var "'nv2"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_IL"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_ResetGeneralRegisters"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_ResetSIMDFPRegisters"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_ResetSpecialRegisters"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "ResetExternalDebugRegisters"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "cold_reset"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "rv"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "rv"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "RVBAR_EL3"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "RVBAR_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "rv"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "RVBAR_EL2"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "RVBAR_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "rv"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "RVBAR_EL1"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "RVBAR_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "IsZero"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "rv"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtythree), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "PAMax"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv26"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv26")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "IsZero"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "rv"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv21")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv20"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv20")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "reset vector not correctly aligned"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "BranchTo"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "rv"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "BranchType_UNKNOWN"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_abbrev( (T_id "boolean"), (T_id "bit"))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_CallHypervisor"), Unknown)), (P_aux( (P_id (Id_aux( (Id "immediate"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_CallHypervisor"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_CallSecureMonitor"), Unknown)), (P_aux( (P_id (Id_aux( (Id "immediate"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_CallSecureMonitor"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_CallSupervisor"), Unknown)), (P_aux( (P_id (Id_aux( (Id "immediate"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_CallSupervisor"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_CheckForSMCTrap"), Unknown)), (P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "route_to_el2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "IsSecure"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv249")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv251")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv246")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv248")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "HCR_EL2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "HCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TSC"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv237")); (T_arg_nexp (Ne_var "'nv236"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv237")); (T_arg_nexp (Ne_var "'nv236"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv237")); (T_arg_nexp (Ne_var "'nv236"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv237")); (T_arg_nexp (Ne_var "'nv236"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv237")); (T_arg_nexp (Ne_var "'nv236"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "route_to_el2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_CheckForSMCTrap route_to_el2"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_CheckForWFxTrap"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "target_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "is_wfe"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "target_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "trap"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "trap"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "is_wfe"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "SCTLR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "nTWE"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "SCTLR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "nTWI"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'nv16"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv20")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "trap"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "is_wfe"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "HCR_EL2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "HCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TWE"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "HCR_EL2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "HCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TWI"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'nv34"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "trap"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "is_wfe"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "SCR_EL3"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TWE"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "SCR_EL3"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "TWI"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "trap"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_WFxTrap"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "target_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "is_wfe"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_SystemRegisterTrap"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "target_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "dir"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_SystemRegisterTrap"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_UndefinedFault"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_UndefinedFault"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_WFxTrap"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "target_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "is_wfe"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_WFxTrap"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "FaultRecord"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_CreateFaultRecord"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "type"), Unknown))), (Unknown, (Some ((T_id "Fault"), (Tag_enum(Nat_big_num.of_int 19)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "ipaddress"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "level"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "write"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "extflag"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "secondstage"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "s2fs1walk"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "Fault"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_id "bit"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "FaultRecord"), Unknown))), Unknown)), (Id_aux( (Id "fault"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "FaultRecord"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_record (FES_aux( (FES_Fexps( [(FE_aux( (FE_Fexp( (Id_aux( (Id "type"), Unknown)), (E_aux( (E_id (Id_aux( (Id "type"), Unknown))), (Unknown, (Some ((T_id "Fault"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "Fault"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "domain"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "debugmoe"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "ipaddress"), Unknown)), (E_aux( (E_id (Id_aux( (Id "ipaddress"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "level"), Unknown)), (E_aux( (E_id (Id_aux( (Id "level"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "acctype"), Unknown)), (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "AccType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "write"), Unknown)), (E_aux( (E_id (Id_aux( (Id "write"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "extflag"), Unknown)), (E_aux( (E_id (Id_aux( (Id "extflag"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "secondstage"), Unknown)), (E_aux( (E_id (Id_aux( (Id "secondstage"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "s2fs1walk"), Unknown)), (E_aux( (E_id (Id_aux( (Id "s2fs1walk"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None)))), (Unknown, (Some ((T_id "FaultRecord"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "fault"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "FaultRecord"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "FaultRecord"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "Fault"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_id "bit"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_id "FaultRecord"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_ExclusiveMonitorsPass"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "AccType_ATOMIC"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "iswrite"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "aligned"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Align"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "secondstage"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_Abort"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_AlignmentFault"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "secondstage"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "FaultRecord"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "passed"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_IsExclusiveVA"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "ProcessorID"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "passed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AddressDescriptor"), Unknown))), Unknown)), (Id_aux( (Id "memaddrdesc"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_TranslateAddress"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "IsFault"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_Abort"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "fault"), Unknown)))), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "passed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "IsExclusiveLocal"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "paddress"), Unknown)))), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "ProcessorID"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "passed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "ClearExclusiveLocal"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "ProcessorID"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_field( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "memattrs"), Unknown)))), (Unknown, (Some ((T_id "MemoryAttributes"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "shareable"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "passed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "IsExclusiveGlobal"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "paddress"), Unknown)))), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "ProcessorID"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "passed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_IsExclusiveVA"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "processorid"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "The model does not implement the exclusive monitors explicitly."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_MarkExclusiveVA"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "processorid"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "The model does not implement the exclusive monitors explicitly."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_SetExclusiveMonitors"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "AccType_ATOMIC"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "iswrite"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "aligned"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Align"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AddressDescriptor"), Unknown))), Unknown)), (Id_aux( (Id "memaddrdesc"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_TranslateAddress"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "IsFault"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_field( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "memattrs"), Unknown)))), (Unknown, (Some ((T_id "MemoryAttributes"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "shareable"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "MarkExclusiveGlobal"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "paddress"), Unknown)))), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "ProcessorID"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "MarkExclusiveLocal"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "paddress"), Unknown)))), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "ProcessorID"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_MarkExclusiveVA"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "ProcessorID"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_CheckAlignment"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "aligned"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Align"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "A"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_field( (E_aux( (E_app( (Id_aux( (Id "SCTLR'"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "A"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "AccType_ATOMIC"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "AccType_ORDERED"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "A"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv250")); (T_arg_nexp (Ne_var "'nv249"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv250")); (T_arg_nexp (Ne_var "'nv249"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv250")); (T_arg_nexp (Ne_var "'nv249"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv250")); (T_arg_nexp (Ne_var "'nv249"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv250")); (T_arg_nexp (Ne_var "'nv249"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "secondstage"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_Abort"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_AlignmentFault"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "secondstage"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "FaultRecord"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "read_buffer_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_rMemSingle"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "wasaligned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "read_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "bool"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'nv3")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Align"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv5")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv5")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "value"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "iswrite"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AddressDescriptor"), Unknown))), Unknown)), (Id_aux( (Id "memaddrdesc"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_TranslateAddress"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wasaligned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "IsFault"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_Abort"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "fault"), Unknown)))), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "_rMem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "read_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "bool"), (T_id "bit")))]), (T_id "read_buffer_type"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "write_buffer_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_wMemSingle"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "wasaligned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "write_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "bool"), (T_id "bit"))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'nv3")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Align"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv5")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv5")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'nv3")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "iswrite"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AddressDescriptor"), Unknown))), Unknown)), (Id_aux( (Id "memaddrdesc"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_TranslateAddress"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wasaligned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "IsFault"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_Abort"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "fault"), Unknown)))), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_field( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "memattrs"), Unknown)))), (Unknown, (Some ((T_id "MemoryAttributes"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "shareable"), Unknown)))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ClearExclusiveByAddress"), Unknown)), [
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "paddress"), Unknown)))), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "ProcessorID"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "_wMem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "memaddrdesc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv6"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv6"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "write_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "bool"), (T_id "bit"))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "write_buffer_type"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "CheckSPAlignment"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "sp"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rSP"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bool"), Unknown))), Unknown)), (Id_aux( (Id "stack_align_check"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "stack_align_check"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "SCTLR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "SA0"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_var "'nv17"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_var "'nv17"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_var "'nv17"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_var "'nv17"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_var "'nv17"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "stack_align_check"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_app( (Id_aux( (Id "SCTLR'"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "SA"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'nv32"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'nv32"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'nv32"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'nv32"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'nv32"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "stack_align_check"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "sp"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv42")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Align"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "sp"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num sixteen), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixteen))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv44")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_SPAlignmentFault"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "read_buffer_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rMem'"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "read_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "bool"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "read_buffer_type"), Unknown))), Unknown)), (Id_aux( (Id "read_buffer'"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "i"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "iswrite"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "aligned"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CheckAlignment"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "atomic"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "AccType_VEC"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "AccType_VECSTREAM"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "atomic"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id ">"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "gt")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "read_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_rMemSingle"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "read_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_for( (Id_aux( (Id "i"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv249"), (Ne_var "'nv250"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Ord_aux( Ord_inc, Unknown)),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "read_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_rMemSingle"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "read_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv285")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_var "'nv243"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv285")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))) ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "read_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_rMemSingle"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "read_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "read_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "read_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_abbrev( (T_id "bool"), (T_id "bit")))]), (T_id "read_buffer_type"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "read_buffer_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rMem"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "read_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rMem'"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "read_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType")]), (T_id "read_buffer_type"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "read_buffer_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rMem_exclusive"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "read_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rMem'"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "read_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType")]), (T_id "read_buffer_type"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "write_buffer_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "wMem'"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "write_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "bool"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "write_buffer_type"), Unknown))), Unknown)), (Id_aux( (Id "write_buffer'"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant eight), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "value'"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "i"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "iswrite"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "BigEndian"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "value'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "BigEndianReverse"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "aligned"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CheckAlignment"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "atomic"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "AccType_VEC"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "AccType_VECSTREAM"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bool"), Unknown))), Unknown)), (Id_aux( (Id "exclusiveSuccess"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "atomic"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id ">"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "gt")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "write_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_wMemSingle"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "write_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num seven), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const seven))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_mult( (Ne_var "'nv242"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv242"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv242"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_for( (Id_aux( (Id "i"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv255"), (Ne_var "'nv256"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Ord_aux( Ord_inc, Unknown)),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "write_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_wMemSingle"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "write_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv376")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_var "'nv249"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv376")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_var "'nv249"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv337"), (Ne_var "'nv338"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num seven), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const seven))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv307"); (Ne_var "'nv308")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_var "'nv249"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv353"), (Ne_var "'nv354"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv285")); (T_arg_nexp (Ne_mult( (Ne_var "'nv281"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv281"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv281"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))) ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "write_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_wMemSingle"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "write_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "aligned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "exclusive"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv395"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv395"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "write_buffer'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "write_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "bool"), (T_id "bit")))]), (T_id "write_buffer_type"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "write_buffer_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "wMem"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "write_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem'"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv1"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv1"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "write_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "write_buffer_type"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 1;Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "write_buffer_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "wMem_exclusive"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "write_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem'"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv1"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv1"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "write_buffer_type"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))); (T_id "AccType"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'N"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'N"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "write_buffer_type"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_ResetGeneralRegisters"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_for( (Id_aux( (Id "i"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num thirty), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirty))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Ord_aux( Ord_inc, Unknown)),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirty))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))) ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_ResetSIMDFPRegisters"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_for( (Id_aux( (Id "i"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Ord_aux( Ord_inc, Unknown)),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wV"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "i"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num onetwentyeight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyeight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const onetwentyeight); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))) ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_ResetSpecialRegisters"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SP_EL0"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SP_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SP_EL1"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SP_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SPSR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SPSR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSR_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SPSR_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "ELR_EL1"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "ELR_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "ELR_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SP_EL2"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SP_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SPSR_EL2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SPSR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSR_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SPSR_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "ELR_EL2"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "ELR_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "ELR_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "ELR_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SP_EL3"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SP_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SPSR_EL3"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SPSR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "SPSR_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SPSR_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "ELR_EL3"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "ELR_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "ELR_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "ELR_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HaveAArch32EL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SPSR_fiq"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SPSR_irq"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SPSR_abt"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SPSR_und"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "DLR_EL0"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "DSPSR_EL0"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rPC"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "_PC"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "_PC")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "wSP"), Unknown)), (P_aux( (P_tup [(P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "unit"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "PSTATE_SP"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SP_EL0"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SP_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv20")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SP_EL0"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SP_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv25")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SP_EL1"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SP_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SP_EL2"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SP_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "SP_EL3"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SP_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assert( (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "unit"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rSP"), Unknown)), (P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "PSTATE_SP"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_var "'nv14"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "SP_EL0"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv20")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "SP_EL0"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv26")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv27")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "SP_EL1"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "SP_EL2"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "pstate_el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv41")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "SP_EL3"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "SP_EL3"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "SP_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64;Nat_big_num.of_int 128])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "wV"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_vector(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "_V"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 33))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num onetwentyeight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyeight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const onetwentyeight); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64;Nat_big_num.of_int 128])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rV"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)),
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "_V"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 33))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64;Nat_big_num.of_int 128])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rVpart"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))); (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "part"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))); (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "part"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)),
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "_V"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 33))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv39")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv39"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "_V"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 33))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num onetwentyseven), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyseven))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))); (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64;Nat_big_num.of_int 128])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "wVpart"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "part"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))); (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "part"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "_V"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 33))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num onetwentyeight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyeight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const onetwentyeight); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv35")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv35"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector_range(
+ (LEXP_aux( (LEXP_vector(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "_V"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtytwo)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 33))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num onetwentyseven), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyseven))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_minus( (Nexp_aux( (Nexp_constant onetwentyseven), Unknown)), (Nexp_aux( (Nexp_constant sixtyfour), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant one), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "SIMD_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtytwo))]))))); (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "wX"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "_R"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rX"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "mask"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)),
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "_R"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv14")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "mask")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rELR"), Unknown)), (P_aux( (P_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "r"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "r"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "ELR_EL1"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "ELR_EL1")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "r"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "ELR_EL2"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "ELR_EL2")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "r"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "ELR_EL3"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "ELR_EL3")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Unreachable"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "r"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "rELR'"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_var "'nv1")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_var "'nv1")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "rELR"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "SCTLR_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "SCTLR"), Unknown)), (P_aux( (P_id (Id_aux( (Id "regime"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "regime"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv0")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SCTLR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "regime"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SCTLR_EL2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "regime"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SCTLR_EL3"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "SCTLR_type unreachable"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "SCTLR_EL1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_EL1_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "SCTLR_type"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "SCTLR'"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SCTLR"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "S1TranslationRegime"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_abbrev( (T_id "SCTLR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "boolean"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_CheckUnallocatedSystemAccess"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "read"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "read"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "<"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "lt_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (T_abbrev( (T_id "boolean"), (T_id "bit"))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "CheckSystemAccess"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "read"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "unallocated"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "need_secure"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "min_EL"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "min_EL"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "min_EL"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "min_EL"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "min_EL"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "min_EL"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "min_EL"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "need_secure"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "<"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "min_EL"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "lt_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "need_secure"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "IsSecure"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "AArch64_CheckUnallocatedSystemAccess"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "read"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "bit")]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "SysOp_R"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "SysOp_R"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "SysOp_W"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_val"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "SysOp_W"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "System_Get"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "NZCV"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "NZCV_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "DAIF"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "DAIF_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num(Nat_big_num.of_int 13)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 13)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 13)))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "TPIDR_EL0"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TPIDR_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "System_Put"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_val"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "NZCV"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "NZCV_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "_val"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "NZCV")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "DAIF"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "DAIF_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "_val"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num(Nat_big_num.of_int 13)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 13)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 13)))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))); (T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "TPIDR_EL0"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TPIDR_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "_val"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtythree), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "TPIDR_EL0")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_ExceptionReturn"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "new_pc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "spsr"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "AArch64_ExceptionReturn"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "ExtendType"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "DecodeRegExtend"), Unknown)), (P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ExtendType_UXTB"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ExtendType_UXTH"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ExtendType_UXTW"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ExtendType_UXTX"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ExtendType_SXTB"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ExtendType_SXTH"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ExtendType_SXTW"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ExtendType_SXTX"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "ExtendType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_id "ExtendType"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'S"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'N"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_ge( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant zero), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_bounded_le( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant four), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "ExtendType"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'S"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "ExtendReg"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_id "ExtendType"); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ExtendReg"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_id "ExtendType"); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_reg"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "type"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum eight), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_id "ExtendType"); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "_val"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_reg"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "_unsigned"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "len"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "type"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ExtendType_SXTB"), Unknown)), [])), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ExtendType_SXTH"), Unknown)), [])), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixteen), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixteen))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ExtendType_SXTW"), Unknown)), [])), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ExtendType_SXTX"), Unknown)), [])), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ExtendType_UXTB"), Unknown)), [])), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ExtendType_UXTH"), Unknown)), [])), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixteen), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixteen))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ExtendType_UXTW"), Unknown)), [])), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ExtendType_UXTX"), Unknown)), [])), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "uMin"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "_val"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv9"), (Ne_var "'nv10"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Extend"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "_val"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "_val"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv50"), (Ne_var "'nv51"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv46")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv46"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv46"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'S"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'S")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv46"), (Ne_const zero))); (Ne_const one)]); (Ne_var "'S")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv46"), (Ne_const zero))); (Ne_const one)]); (Ne_var "'S")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv38"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv38")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_id "ExtendType"); (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'S"))])))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'E"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "DecodeBitMasks"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_id "bit"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'M"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'E"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'E"), Unknown)), [Nat_big_num.of_int 2;Nat_big_num.of_int 4;Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'M"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "DecodeBitMasks"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "'M"), Unknown))), (Unknown, (Some ((T_tup [(T_id "bit"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "immN"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "immr"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "immediate"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "bit"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "M"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'M"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "levels"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num six), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const six))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "len"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "HighestSetBit"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "immN"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv10")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const one); (Ne_const six)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_const six)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'nv6"); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "DecodeBitMasks: HighestSetBit returned None"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "Some"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "c"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "c"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_add [(Ne_var "'nv6"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))]))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "<"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "lt")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assert( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "M"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_var "'nv4"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id ">="), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "lsl"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv24"), (Ne_exp (Ne_var "'nv25")))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "gteq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "levels"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num six), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const six))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "^^"), Unknown)), (E_aux( (E_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_mult( (Ne_const one), (Ne_var "'nv32")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "duplicate_bits")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv32"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv32")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "immediate"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "levels"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_and")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv46")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "levels"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv48")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "S"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "levels"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_and")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "R"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "immr"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "levels"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_and")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "diff"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "R"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv59")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv58")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "minus_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'E"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "esize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'E"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "lsl"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv81"), (Ne_exp (Ne_var "'nv82")))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "diff"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "len"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const six))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv90"), (Ne_var "'nv91"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'E"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'E"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "welem"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "esize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'E"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv154")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "^^"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv172")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv174")); (T_arg_nexp (Ne_add [(Ne_var "'nv174"); (Ne_exp (Ne_const six))]))]))), (Tag_extern (Some "add_vec_range_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv154")); (T_arg_nexp (Ne_mult( (Ne_const one), (Ne_var "'nv152")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "duplicate_bits")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv152"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv152")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'E"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'E"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "telem"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "esize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'E"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv223")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "^^"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv241")); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv243")); (T_arg_nexp (Ne_add [(Ne_var "'nv243"); (Ne_exp (Ne_const six))]))]))), (Tag_extern (Some "add_vec_range_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv223")); (T_arg_nexp (Ne_mult( (Ne_const one), (Ne_var "'nv221")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "duplicate_bits")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv221"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv221")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "wmask"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Replicate"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'M"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ROR"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "welem"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "unsigned"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "R"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))), (Tag_extern (Some "unsigned")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "tmask"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Replicate"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'M"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'M"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "telem"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'E"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'E")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_tuple [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "wmask"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "tmask"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "bit"); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'M"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'M")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "ShiftType"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "DecodeShift"), Unknown)), (P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "unsigned"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const four))]))), (Tag_extern (Some "unsigned")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ShiftType_LSL"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ShiftType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ShiftType_LSR"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ShiftType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ShiftType_ASR"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ShiftType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "ShiftType_ROR"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "ShiftType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "ShiftType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "ShiftType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_id "ShiftType"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "implicit"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "ShiftType"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "nat"), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "ShiftReg"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_id "ShiftType"); (T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'N"), Unknown)))), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "ShiftReg"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_id "ShiftType"); (T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_reg"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "type"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "amount"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_id "ShiftType"); (T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'N"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "'N"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'N"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_reg"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "type"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ShiftType_LSL"), Unknown)), [])), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "LSL"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "amount"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ShiftType_LSR"), Unknown)), [])), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "LSR"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "amount"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ShiftType_ASR"), Unknown)), [])), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ASR"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "amount"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "ShiftType_ROR"), Unknown)), [])), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ROR"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "amount"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))); (T_id "ShiftType"); (T_abbrev( (T_id "nat"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'N"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'N")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "Prefetch"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "prfop"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "PrefetchHint"), Unknown))), Unknown)), (Id_aux( (Id "hint"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "PrefetchHint"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "Prefetch_READ"), Unknown))), (Unknown, (Some ((T_id "PrefetchHint"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "PrefetchHint"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "Prefetch_WRITE"), Unknown))), (Unknown, (Some ((T_id "PrefetchHint"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "PrefetchHint"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "Prefetch_EXEC"), Unknown))), (Unknown, (Some ((T_id "PrefetchHint"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "PrefetchHint"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "PrefetchHint"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "target"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "stream"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bool"), Unknown))), Unknown)), (Id_aux( (Id "returnv"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "prfop"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const four), (Ne_const three))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "hint"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "PrefetchHint"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "Prefetch_READ"), Unknown))), (Unknown, (Some ((T_id "PrefetchHint"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "hint"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "PrefetchHint"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "Prefetch_EXEC"), Unknown))), (Unknown, (Some ((T_id "PrefetchHint"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "hint"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "PrefetchHint"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "Prefetch_WRITE"), Unknown))), (Unknown, (Some ((T_id "PrefetchHint"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "returnv"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "returnv"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "bool"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "target"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "unsigned"), Unknown)), [
+ (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "prfop"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const two), (Ne_const one))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), (Tag_extern (Some "unsigned")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "stream"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "prfop"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_var "'nv28"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_var "'nv28"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_var "'nv28"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_var "'nv28"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv29")); (T_arg_nexp (Ne_var "'nv28"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Hint_Prefetch"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "hint"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "PrefetchHint"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "target"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "stream"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), (T_id "unit"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "FaultRecord"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_AlignmentFault"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "secondstage"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fortyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fortyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "ipaddress"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num fortyeight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fortyeight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "level"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "extflag"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "is_one"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "is_one")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "s2fs1walk"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "is_one"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "is_one")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CreateFaultRecord"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "Fault_Alignment"), Unknown))), (Unknown, (Some ((T_id "Fault"), (Tag_enum(Nat_big_num.of_int 18)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "ipaddress"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "level"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "extflag"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "secondstage"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "s2fs1walk"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_id "FaultRecord"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "FaultRecord"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_NoFault"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fortyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fortyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "ipaddress"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num fortyeight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fortyeight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "level"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "AccType_NORMAL"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "iswrite"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "is_one"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "is_one")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "extflag"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "is_one"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "is_one")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "secondstage"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "s2fs1walk"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CreateFaultRecord"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "Fault_None"), Unknown))), (Unknown, (Some ((T_id "Fault"), (Tag_enum(Nat_big_num.of_int 18)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "ipaddress"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fortyseven)); (T_arg_nexp (Ne_const fortyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "level"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "extflag"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "secondstage"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "s2fs1walk"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "FaultRecord"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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 "AddressDescriptor"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "AArch64_TranslateAddress"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "vaddress"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "wasaligned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "Translation is not implemented, return same address as the virtual (no fault, normal, shareable, non-secure)."), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AddressDescriptor"), Unknown))), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_record (FES_aux( (FES_Fexps( [(FE_aux( (FE_Fexp( (Id_aux( (Id "fault"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_NoFault"), Unknown)), [])), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "FaultRecord"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "memattrs"), Unknown)), (E_aux( (E_record (FES_aux( (FES_Fexps( [
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "type"), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemType_Normal"), Unknown))), (Unknown, (Some ((T_id "MemType"), (Tag_enum one), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "shareable"), Unknown)), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None)))), (Unknown, (Some ((T_id "MemoryAttributes"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemoryAttributes"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "paddress"), Unknown)), (E_aux( (E_record (FES_aux( (FES_Fexps( [
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "physicaladdress"), Unknown)), (E_aux( (E_id (Id_aux( (Id "vaddress"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (FE_aux( (FE_Fexp( (Id_aux( (Id "NS"), Unknown)), (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None)))), (Unknown, (Some ((T_id "FullAddress"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "FullAddress"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))], false)), (Unknown,None)))), (Unknown, (Some ((T_id "AddressDescriptor"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AddressDescriptor"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "AddressDescriptor"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "AccType"); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_id "AddressDescriptor"), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_type (TD_aux( (TD_variant( (Id_aux( (Id "ast"), Unknown)), (Name_sect_aux( Name_sect_none, Unknown)), (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), [
+ (Tu_aux( (Tu_id (Id_aux( (Id "Unallocated"), Unknown))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "ImplementationDefinedTestBeginEnd"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_id (Id_aux( (Id "ImplementationDefinedStopFetching"), Unknown))), Unknown));
+ (Tu_aux( (Tu_id (Id_aux( (Id "ImplementationDefinedThreadStart"), Unknown))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "TMStart"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_id (Id_aux( (Id "TMCommit"), Unknown))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "TMAbort"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_id (Id_aux( (Id "TMTest"), Unknown))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "CompareAndBranch"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "BranchConditional"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fifteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "GenerateExceptionEL1"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fifteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "GenerateExceptionEL2"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fifteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "GenerateExceptionEL3"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fifteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "DebugBreakpoint"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_id (Id_aux( (Id "ExternalDebugBreakpoint"), Unknown))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "DebugSwitchToExceptionLevel"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "PSTATEField"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "MoveSystemImmediate"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_id (Id_aux( (Id "SystemHintOp"), Unknown))), Unknown)), (Id_aux( (Id "Hint"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "ClearExclusiveMonitor"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "MemBarrierOp"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "MBReqDomain"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "MBReqTypes"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "Barrier"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "System"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "MoveSystemRegister"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "TestBitAndBranch"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "BranchType"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "BranchImmediate"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "BranchType"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "BranchRegister"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_id (Id_aux( (Id "ExceptionReturn"), Unknown))), Unknown));
+ (Tu_aux( (Tu_id (Id_aux( (Id "DebugRestorePState"), Unknown))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "LoadLiteral"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "LoadStoreAcqExc"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "LoadStorePairNonTemp"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "LoadImmediate"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "ExtendType"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "LoadRegister"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "LoadStorePair"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "AddSubImmediate"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "BitfieldMove"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "ExtractRegister"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "LogicalOp"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "LogicalImmediate"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fifteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "MoveWideOp"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "MoveWide"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "Address"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "ExtendType"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant seven), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "AddSubExtendRegister"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "ShiftType"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "AddSubShiftedRegister"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "AddSubCarry"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "ConditionalCompareImmediate"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown))]), Unknown)), (Id_aux( (Id "ConditionalCompareRegister"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "ConditionalSelect"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "RevOp"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "Reverse"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "CountOp"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "CountLeading"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "Division"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "ShiftType"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "Shift"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "CRC"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "MultiplyAddSub"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "MultiplyAddSubLong"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "MultiplyHigh"), Unknown)))), Unknown));
+ (Tu_aux( (Tu_ty_id( (Typ_aux( (Typ_tup [(Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "LogicalOp"), Unknown))), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "ShiftType"), Unknown))), Unknown)); (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown))])), Unknown)); (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown))]), Unknown)), (Id_aux( (Id "LogicalShiftedRegister"), Unknown)))), Unknown));], false)), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_barr, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_exmem, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "execute"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_barr, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_exmem, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeTMStart"), Unknown)), (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "TMStart"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_extern_no_rename( (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"), Unknown))), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "TMCommitEffect"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_id "unit"), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))), (Tag_extern None), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeTMCommit"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "TMCommit"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeTMTest"), Unknown)), (P_aux( (P_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "TMTest"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeTMAbort"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "R"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm5"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const five); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "TMAbort"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "R"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "imm5"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const five); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeCompareBranchImmediate"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm19"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 18))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "iszero"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv43")); (T_arg_nexp (Ne_var "'nv42"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm19"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 18))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_const two)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_const two)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv45"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv45")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "CompareAndBranch"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "iszero"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeConditionalBranchImmediate"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm19"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 18))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const one); (Ne_add [(Ne_const four); (Ne_const seven)])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm19"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 18))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_const two)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_const two)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv15"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv15")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "condition"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "BranchConditional"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const one); (Ne_add [(Ne_const four); (Ne_const seven)])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "decodeExceptionGeneration"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeExceptionGeneration"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fifteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "imm"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "GenerateExceptionEL1"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeExceptionGeneration"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fifteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "imm"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "GenerateExceptionEL2"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeExceptionGeneration"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fifteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "imm"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "GenerateExceptionEL3"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeExceptionGeneration"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fifteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "comment"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "DebugBreakpoint"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "comment"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeExceptionGeneration"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "ExternalDebugBreakpoint"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeExceptionGeneration"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "LL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "target_level"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "LL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv72")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv74")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "DebugSwitchToExceptionLevel"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "target_level"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "decodeSystem"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeSystem"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "PSTATEField"), Unknown))), Unknown)), (Id_aux( (Id "field"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "PSTATEField"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "PSTATEField_DAIFSet"), Unknown))), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "PSTATEField"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "PSTATEField_DAIFClr"), Unknown))), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "PSTATEField"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "PSTATEField_SP"), Unknown))), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "PSTATEField"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "PSTATEField"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const three); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const three); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "field"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "PSTATEField"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "PSTATEField_SP"), Unknown))), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const three); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "field"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "PSTATEField"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "PSTATEField_DAIFSet"), Unknown))), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const three); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "field"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "PSTATEField"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "PSTATEField_DAIFClr"), Unknown))), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const three); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "MoveSystemImmediate"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "field"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "PSTATEField"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeSystem"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "SystemHintOp"), Unknown))), Unknown)), (Id_aux( (Id "op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "SystemHintOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SystemHintOp_NOP"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SystemHintOp_YIELD"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SystemHintOp_WFE"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SystemHintOp_WFI"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SystemHintOp_SEV"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "SystemHintOp_SEVL"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const four); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const four); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "SystemHintOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "SystemHintOp_NOP"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const four); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "SystemHintOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "SystemHintOp_YIELD"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const four); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "SystemHintOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "SystemHintOp_WFE"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const four); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "SystemHintOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "SystemHintOp_WFI"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const four); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "SystemHintOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "SystemHintOp_SEV"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const four); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "SystemHintOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "SystemHintOp_SEVL"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const four); (Ne_const three)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const four); (Ne_const three)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "SystemHintOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "SystemHintOp_NOP"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Hint"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "SystemHintOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeSystem"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "imm"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "unsigned"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), (Tag_extern (Some "unsigned")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "ClearExclusiveMonitor"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeSystem"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "MemBarrierOp"), Unknown))), Unknown)), (Id_aux( (Id "op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemBarrierOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemBarrierOp_DSB"), Unknown))), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemBarrierOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemBarrierOp_DMB"), Unknown))), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemBarrierOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemBarrierOp_ISB"), Unknown))), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemBarrierOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "MemBarrierOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "MBReqDomain"), Unknown))), Unknown)), (Id_aux( (Id "domain"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqDomain"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MBReqDomain_Nonshareable"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MBReqDomain_InnerShareable"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MBReqDomain_OuterShareable"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MBReqDomain_FullSystem"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "MBReqTypes"), Unknown))), Unknown)), (Id_aux( (Id "types"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqTypes"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MBReqTypes_Reads"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MBReqTypes_Writes"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MBReqTypes_All"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemBarrierOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MemBarrierOp_DSB"), Unknown))), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemBarrierOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MemBarrierOp_DMB"), Unknown))), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemBarrierOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MemBarrierOp_ISB"), Unknown))), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const three), (Ne_const two))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqDomain"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MBReqDomain_OuterShareable"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqDomain"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MBReqDomain_Nonshareable"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqDomain"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MBReqDomain_InnerShareable"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqDomain"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MBReqDomain_FullSystem"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const one), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqTypes"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MBReqTypes_Reads"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqTypes"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MBReqTypes_Writes"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqTypes"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MBReqTypes_All"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const one), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqTypes"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MBReqTypes_All"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqDomain"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MBReqDomain_FullSystem"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Barrier"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemBarrierOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqDomain"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MBReqTypes"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeSystem"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "CRn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv131")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv131")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "sys_op0"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "sys_op1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const three); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv147"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "sys_op2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const three); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv149"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "sys_crn"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "CRn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const four); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv151"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "sys_crm"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const four); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv153"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "has_result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_var "'nv167"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_var "'nv167"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_var "'nv167"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_var "'nv167"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv168")); (T_arg_nexp (Ne_var "'nv167"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "System"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op0"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crn"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "has_result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeSystem"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "o0"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "CRn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv172")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv172")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "sys_op0"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "o0"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv224"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv195"); (Ne_var "'nv196")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "sys_op1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "op1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const three); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv226"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "sys_op2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const three); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv228"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "sys_crn"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "CRn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const four); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv230"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "sys_crm"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "CRm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const four); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv232"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "read"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv247")); (T_arg_nexp (Ne_var "'nv246"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv247")); (T_arg_nexp (Ne_var "'nv246"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv247")); (T_arg_nexp (Ne_var "'nv246"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv247")); (T_arg_nexp (Ne_var "'nv246"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv247")); (T_arg_nexp (Ne_var "'nv246"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "MoveSystemRegister"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op0"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crn"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "read"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "decodeImplementationDefined"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeImplementationDefined"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "isEnd"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "ImplementationDefinedTestBeginEnd"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "isEnd"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeImplementationDefined"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "ImplementationDefinedStopFetching"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeImplementationDefined"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "ImplementationDefinedThreadStart"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeTestBranchImmediate"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "b5"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "b40"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm14"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 13))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 14))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const(Nat_big_num.of_int 14)); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "b5"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "bit_pos"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "b5"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "b40"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const one); (Ne_const five)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_const five)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv31"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv31")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv32"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "bit_val"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm14"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 13))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 14))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_const(Nat_big_num.of_int 14))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv42")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const(Nat_big_num.of_int 14)); (Ne_const two)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 14)); (Ne_const two)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv38"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv38")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "TestBitAndBranch"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "bit_pos"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "bit_val"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const(Nat_big_num.of_int 14)); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeUnconditionalBranchImmediate"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm26"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 25))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 26))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const five); (Ne_add [(Ne_const(Nat_big_num.of_int 26)); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "BranchType"), Unknown))), Unknown)), (Id_aux( (Id "branch_type"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "BranchType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "BranchType_CALL"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "BranchType_JMP"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm26"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 25))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 26))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_const(Nat_big_num.of_int 26))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const(Nat_big_num.of_int 26)); (Ne_const two)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 26)); (Ne_const two)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv26"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv26")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "BranchImmediate"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "BranchType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const five); (Ne_add [(Ne_const(Nat_big_num.of_int 26)); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "decodeUnconditionalBranchRegister"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeUnconditionalBranchRegister"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "BranchType"), Unknown))), Unknown)), (Id_aux( (Id "branch_type"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "BranchType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "BranchType_CALL"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "BranchType_ERET"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "BranchType_DBGEXIT"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "BranchType_RET"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "BranchType_JMP"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "BranchType_EXCEPTION"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num six), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "BranchType_UNKNOWN"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "BranchType"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "BranchType_JMP"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "BranchType"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "BranchType_CALL"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "BranchType"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "BranchType_RET"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "BranchRegister"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "BranchType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeUnconditionalBranchRegister"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "ExceptionReturn"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeUnconditionalBranchRegister"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "DebugRestorePState"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeAdvSIMDLoadStoreMultiStruct"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "decodeAdvSIMDLoadStoreMultiStruct"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Unallocated"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeAdvSIMDLoadStoreMultiStructPostIndexed"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "decodeAdvSIMDLoadStoreMultiStructPostIndexed"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Unallocated"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeAdvSIMDLoadStoreSingleStruct"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "decodeAdvSIMDLoadStoreSingleStruct"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Unallocated"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeAdvSIMDLoadStoreSingleStructPostIndexed"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "decodeAdvSIMDLoadStoreSingleStructPostIndexed"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Unallocated"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadRegisterLiteral"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm19"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 18))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const five); (Ne_const two)])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)), (Id_aux( (Id "memop"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "_signed"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MemOp_PREFETCH"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm19"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 18))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_const two)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_const two)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv17"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv17")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv24"), (Ne_var "'nv25"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "LoadLiteral"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const five); (Ne_const two)])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreExclusive"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "o2"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "o1"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rs"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "o0"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "s"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rs"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [
+ (E_aux( (E_id (Id_aux( (Id "o2"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "o1"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "o0"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv35")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv37")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "o2"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "o1"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv32")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "o1"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv111")); (T_arg_nexp (Ne_var "'nv110"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv93")); (T_arg_nexp (Ne_var "'nv92"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv93")); (T_arg_nexp (Ne_var "'nv92"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv93")); (T_arg_nexp (Ne_var "'nv92"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv93")); (T_arg_nexp (Ne_var "'nv92"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv93")); (T_arg_nexp (Ne_var "'nv92"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "o0"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv126")); (T_arg_nexp (Ne_var "'nv125"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "AccType_ORDERED"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "AccType_ATOMIC"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "excl"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "o2"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv141")); (T_arg_nexp (Ne_var "'nv140"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv141")); (T_arg_nexp (Ne_var "'nv140"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv141")); (T_arg_nexp (Ne_var "'nv140"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv141")); (T_arg_nexp (Ne_var "'nv140"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv141")); (T_arg_nexp (Ne_var "'nv140"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "pair"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "o1"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv156")); (T_arg_nexp (Ne_var "'nv155"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv156")); (T_arg_nexp (Ne_var "'nv155"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv156")); (T_arg_nexp (Ne_var "'nv155"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv156")); (T_arg_nexp (Ne_var "'nv155"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv156")); (T_arg_nexp (Ne_var "'nv155"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)), (Id_aux( (Id "memop"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_var "'nv170"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_var "'nv170"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_var "'nv170"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_var "'nv170"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_var "'nv170"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv177")); (T_arg_nexp (Ne_var "'nv176"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "lsl"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv175"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv172"), (Ne_exp (Ne_var "'nv173")))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "regsize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv177")); (T_arg_nexp (Ne_var "'nv176"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "pair"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv177")); (T_arg_nexp (Ne_var "'nv176"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv193"), (Ne_var "'nv194"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv177")); (T_arg_nexp (Ne_var "'nv176"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "LoadStoreAcqExc"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "s"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "pair"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv177")); (T_arg_nexp (Ne_var "'nv176"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreNoAllocatePairOffset"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm7"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wback"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "postindex"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "AccType_STREAM"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)), (Id_aux( (Id "memop"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv54")); (T_arg_nexp (Ne_var "'nv53"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv54")); (T_arg_nexp (Ne_var "'nv53"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv54")); (T_arg_nexp (Ne_var "'nv53"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv54")); (T_arg_nexp (Ne_var "'nv53"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv54")); (T_arg_nexp (Ne_var "'nv53"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "scale"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv96"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv67"); (Ne_var "'nv68")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "lsl"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv100"), (Ne_exp (Ne_var "'nv101")))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "LSL"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm7"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const seven); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "LoadStorePairNonTemp"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "sharedDecodeLoadImmediate"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "prefetchAllowed"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "AccType"); (T_abbrev( (T_id "bool"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)), (Id_aux( (Id "memop"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_PREFETCH"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "_signed"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "regsize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv44")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv46")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "prefetchAllowed"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MemOp_PREFETCH"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv118")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv120")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "lsl"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv142"), (Ne_exp (Ne_var "'nv143")))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "LoadImmediate"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_id "AccType"); (T_abbrev( (T_id "bool"), (T_id "bit")))]), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreRegisterImmediatePostIndexed"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm9"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wback"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "postindex"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "scale"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv25"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm9"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "sharedDecodeLoadImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "AccType_NORMAL"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreRegisterImmediatePreIndexed"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm9"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wback"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "postindex"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "scale"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv25"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm9"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "sharedDecodeLoadImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "AccType_NORMAL"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "sharedDecodeLoadRegister"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "extend_type"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_id "ExtendType"); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "AccType_NORMAL"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)), (Id_aux( (Id "memop"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_PREFETCH"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "_signed"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "regsize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_var "'nv18"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv44")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv46")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MemOp_PREFETCH"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv67")); (T_arg_nexp (Ne_var "'nv66"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv118")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv120")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv114")); (T_arg_nexp (Ne_var "'nv113"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "lsl"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv142"), (Ne_exp (Ne_var "'nv143")))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "LoadRegister"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "extend_type"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))); (T_id "ExtendType"); (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)])))))]), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreRegisterRegisterOffset"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv27")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "option_v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wback"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "postindex"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "scale"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv27")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv29"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "option_v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'nv46"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'nv46"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'nv46"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'nv46"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_var "'nv46"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "ExtendType"), Unknown))), Unknown)), (Id_aux( (Id "extend_type"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "ExtendType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DecodeRegExtend"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "option_v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "ExtendType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "shift"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv65")); (T_arg_nexp (Ne_var "'nv64"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv65")); (T_arg_nexp (Ne_var "'nv64"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv65")); (T_arg_nexp (Ne_var "'nv64"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv65")); (T_arg_nexp (Ne_var "'nv64"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv65")); (T_arg_nexp (Ne_var "'nv64"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "sharedDecodeLoadRegister"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv27")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "extend_type"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "ExtendType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreRegisterUnprivileged"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm9"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wback"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "postindex"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "scale"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv25"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm9"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "sharedDecodeLoadImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "AccType_UNPRIV"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreRegisterUnscaledImmediate"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm9"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wback"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "postindex"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "scale"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv25"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm9"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "sharedDecodeLoadImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv23")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "AccType_NORMAL"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreRegisterUnsignedImmediate"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm12"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wback"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "postindex"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "scale"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv21"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "LSL"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm12"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "sharedDecodeLoadImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "AccType_NORMAL"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "sharedDecodeLoadStorePair"), Unknown)), (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_var "'nv15"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm7"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv110"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv110")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_var "'nv15"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv110"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv110")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "t2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "AccType"), Unknown))), Unknown)), (Id_aux( (Id "acctype"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "AccType_NORMAL"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "MemOp"), Unknown))), Unknown)), (Id_aux( (Id "memop"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_var "'nv15"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [
+ (E_aux( (E_if(
+ (E_aux( (E_app( (Id_aux( (Id "is_one"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_var "'nv15"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "is_one")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv37")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv39")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv31")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv33")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "_signed"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv60")); (T_arg_nexp (Ne_var "'nv59"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv60")); (T_arg_nexp (Ne_var "'nv59"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv60")); (T_arg_nexp (Ne_var "'nv59"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv60")); (T_arg_nexp (Ne_var "'nv59"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv60")); (T_arg_nexp (Ne_var "'nv59"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "scale"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv102"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv73"); (Ne_var "'nv74")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "lsl"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv106"), (Ne_exp (Ne_var "'nv107")))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "LSL"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "imm7"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv110"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv110")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "LoadStorePair"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "AccType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MemOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_tup [(T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv16")); (T_arg_nexp (Ne_var "'nv15"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv110"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv110")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "reg_size"), (T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))); (T_abbrev( (T_id "boolean"), (T_id "bit"))); (T_abbrev( (T_id "boolean"), (T_id "bit")))]), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreRegisterPairOffset"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm7"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wback"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "postindex"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "sharedDecodeLoadStorePair"), Unknown)), [
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm7"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const seven); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreRegisterPairPostIndexed"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm7"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wback"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "postindex"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "sharedDecodeLoadStorePair"), Unknown)), [
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm7"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const seven); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadStoreRegisterPairPreIndexed"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm7"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wback"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "postindex"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "sharedDecodeLoadStorePair"), Unknown)), [
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "L"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv22")); (T_arg_nexp (Ne_var "'nv23"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv21")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm7"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const six)); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const seven); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const seven)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "Rt2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv9")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeAddSubtractImmediate"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm12"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "sub_op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "setflags"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "imm"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm12"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm12"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv79")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "^^"), Unknown)), (E_aux( (E_lit (L_aux( (L_num(Nat_big_num.of_int 12)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 12)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv79")); (T_arg_nexp (Ne_mult( (Ne_const one), (Ne_var "'nv77")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "duplicate_bits")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv72")); (T_arg_nexp (Ne_var "'nv77")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_var "'nv77")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_var "'nv77")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv68"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv68")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "AddSubImmediate"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeBitfield"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "immr"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "inzero"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "extend"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "R"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "S"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "inzero"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "extend"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "inzero"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "extend"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "inzero"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "extend"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_var "'nv535"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_var "'nv535"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_var "'nv535"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_var "'nv535"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_var "'nv535"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv521")); (T_arg_nexp (Ne_var "'nv520"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv521")); (T_arg_nexp (Ne_var "'nv520"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv521")); (T_arg_nexp (Ne_var "'nv520"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv521")); (T_arg_nexp (Ne_var "'nv520"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv521")); (T_arg_nexp (Ne_var "'nv520"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "immr"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv503")); (T_arg_nexp (Ne_var "'nv502"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv503")); (T_arg_nexp (Ne_var "'nv502"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv503")); (T_arg_nexp (Ne_var "'nv502"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv503")); (T_arg_nexp (Ne_var "'nv502"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv503")); (T_arg_nexp (Ne_var "'nv502"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv482")); (T_arg_nexp (Ne_var "'nv481"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv482")); (T_arg_nexp (Ne_var "'nv481"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv482")); (T_arg_nexp (Ne_var "'nv481"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv482")); (T_arg_nexp (Ne_var "'nv481"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv482")); (T_arg_nexp (Ne_var "'nv481"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "R"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "immr"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv538"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv540"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "wmask"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "tmask"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DecodeBitMasks"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "immr"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "BitfieldMove"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "inzero"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "extend"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "R"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "wmask"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "tmask"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeExtract"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "lsb"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv121")); (T_arg_nexp (Ne_var "'nv120"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv103")); (T_arg_nexp (Ne_var "'nv102"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "lsb"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv123"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "ExtractRegister"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "lsb"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLogicalImmediate"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "immr"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "setflags"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "LogicalOp"), Unknown))), Unknown)), (Id_aux( (Id "op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LogicalOp_AND"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv17")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LogicalOp_AND"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LogicalOp_ORR"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LogicalOp_EOR"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LogicalOp_AND"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv96")); (T_arg_nexp (Ne_var "'nv95"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv81")); (T_arg_nexp (Ne_var "'nv80"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "DecodeBitMasks"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "imms"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "immr"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "LogicalImmediate"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeMoveWideImmediate"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "hw"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const two); (Ne_add [(Ne_const sixteen); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_var "'nv29"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant fifteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixteen), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "imm"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "imm16"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "pos"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "MoveWideOp"), Unknown))), Unknown)), (Id_aux( (Id "opcode"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MoveWideOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MoveWideOp_N"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MoveWideOp_Z"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "MoveWideOp_K"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "opcode"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MoveWideOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MoveWideOp_N"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "opcode"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MoveWideOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MoveWideOp_Z"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "opcode"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MoveWideOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "MoveWideOp_K"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv104")); (T_arg_nexp (Ne_var "'nv103"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv104")); (T_arg_nexp (Ne_var "'nv103"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv104")); (T_arg_nexp (Ne_var "'nv103"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv104")); (T_arg_nexp (Ne_var "'nv103"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv104")); (T_arg_nexp (Ne_var "'nv103"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "hw"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "pos"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "hw"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv108")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const two); (Ne_const four)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_const four)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv105"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv105")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv106"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "MoveWide"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "pos"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "opcode"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "MoveWideOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const two); (Ne_add [(Ne_const sixteen); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodePCRelAddressing"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "immlo"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "immhi"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 18))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "page"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv28")); (T_arg_nexp (Ne_var "'nv27"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "imm"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "page"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "immhi"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 18))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv32")); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "immlo"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv45")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "^^"), Unknown)), (E_aux( (E_lit (L_aux( (L_num(Nat_big_num.of_int 12)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 12)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv45")); (T_arg_nexp (Ne_mult( (Ne_const one), (Ne_var "'nv43")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "duplicate_bits")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv43")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const two); (Ne_var "'nv43")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_var "'nv43")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_var "'nv33")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_var "'nv33")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv30"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv30")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "immhi"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 18))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_const(Nat_big_num.of_int 19))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "immlo"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_const two)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_const two)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv47"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'nv47")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Address"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "page"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeAddSubtractExtendedRegister"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "option_v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const three); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv40")); (T_arg_nexp (Ne_var "'nv39"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "sub_op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_var "'nv54"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_var "'nv54"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_var "'nv54"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_var "'nv54"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_var "'nv54"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "setflags"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_var "'nv69"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_var "'nv69"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_var "'nv69"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_var "'nv69"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv70")); (T_arg_nexp (Ne_var "'nv69"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "ExtendType"), Unknown))), Unknown)), (Id_aux( (Id "extend_type"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "ExtendType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DecodeRegExtend"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "option_v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "ExtendType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant seven), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "shift"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const seven))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const three); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv72"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const seven))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id ">"), Unknown)), (E_aux( (E_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "gt")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "AddSubExtendRegister"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "extend_type"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "ExtendType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const seven))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const three); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeAddSubtractShiftedRegister"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm6"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "sub_op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "setflags"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv68")); (T_arg_nexp (Ne_var "'nv67"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv69")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv71")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv145")); (T_arg_nexp (Ne_var "'nv144"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv145")); (T_arg_nexp (Ne_var "'nv144"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv145")); (T_arg_nexp (Ne_var "'nv144"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv145")); (T_arg_nexp (Ne_var "'nv144"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv145")); (T_arg_nexp (Ne_var "'nv144"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "imm6"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "ShiftType"), Unknown))), Unknown)), (Id_aux( (Id "shift_type"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "ShiftType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DecodeShift"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "ShiftType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "shift_amount"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm6"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv147"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "AddSubShiftedRegister"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "shift_type"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "ShiftType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift_amount"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeAddSubtractWithCarry"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const eight); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "sub_op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "setflags"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv64")); (T_arg_nexp (Ne_var "'nv63"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "AddSubCarry"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const eight); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeConditionalCompareImmediate"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm5"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "sub_op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "condition"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "flags"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "imm"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm5"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const five); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "ConditionalCompareImmediate"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "flags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeConditionalCompareRegister"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv38")); (T_arg_nexp (Ne_var "'nv37"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "sub_op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_var "'nv52"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "condition"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "flags"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "ConditionalCompareRegister"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "flags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeConditionalSelect"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "o2"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv13")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "condition"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "_cond"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "else_inv"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'nv50"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'nv50"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'nv50"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'nv50"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv51")); (T_arg_nexp (Ne_var "'nv50"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "else_inc"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "o2"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv66")); (T_arg_nexp (Ne_var "'nv65"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "ConditionalSelect"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "else_inv"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "else_inc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "decodeData1Source"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeData1Source"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "RevOp"), Unknown))), Unknown)), (Id_aux( (Id "op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "RevOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "RevOp_RBIT"), Unknown))), (Unknown, (Some ((T_id "RevOp"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "RevOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "RevOp_REV16"), Unknown))), (Unknown, (Some ((T_id "RevOp"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "RevOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "RevOp_REV32"), Unknown))), (Unknown, (Some ((T_id "RevOp"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "RevOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "RevOp_REV64"), Unknown))), (Unknown, (Some ((T_id "RevOp"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "RevOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "RevOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "RevOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "RevOp_RBIT"), Unknown))), (Unknown, (Some ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "RevOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "RevOp_REV16"), Unknown))), (Unknown, (Some ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "RevOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "RevOp_REV32"), Unknown))), (Unknown, (Some ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "RevOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "RevOp_REV64"), Unknown))), (Unknown, (Some ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Reverse"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "RevOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeData1Source"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "CountOp"), Unknown))), Unknown)), (Id_aux( (Id "opcode"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "CountOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_var "'nv98"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_var "'nv98"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_var "'nv98"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_var "'nv98"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_var "'nv98"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "CountOp_CLZ"), Unknown))), (Unknown, (Some ((T_id "CountOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "CountOp_CLS"), Unknown))), (Unknown, (Some ((T_id "CountOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "CountOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "CountLeading"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "opcode"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "CountOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "decodeData2Source"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeData2Source"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "o1"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "_unsigned"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "o1"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Division"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeData2Source"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv61")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv57")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv61")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv84")); (T_arg_nexp (Ne_var "'nv83"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "ShiftType"), Unknown))), Unknown)), (Id_aux( (Id "shift_type"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "ShiftType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DecodeShift"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "op2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv57")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "ShiftType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Shift"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift_type"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "ShiftType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeData2Source"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv98")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "C"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sz"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv90")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv88")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv90")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv98")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv144")); (T_arg_nexp (Ne_var "'nv143"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv144")); (T_arg_nexp (Ne_var "'nv143"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv144")); (T_arg_nexp (Ne_var "'nv143"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv144")); (T_arg_nexp (Ne_var "'nv143"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv144")); (T_arg_nexp (Ne_var "'nv143"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "sz"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv129")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_var "'nv181"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_var "'nv181"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_var "'nv181"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_var "'nv181"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_var "'nv181"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "sz"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv165")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv167")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "size"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "lsl"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "sz"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const two); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv186"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv183"), (Ne_exp (Ne_var "'nv184")))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "crc32c"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "C"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv201")); (T_arg_nexp (Ne_var "'nv200"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv201")); (T_arg_nexp (Ne_var "'nv200"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv201")); (T_arg_nexp (Ne_var "'nv200"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv201")); (T_arg_nexp (Ne_var "'nv200"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv201")); (T_arg_nexp (Ne_var "'nv200"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "CRC"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "crc32c"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "decodeData3Source"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeData3Source"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "o0"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Ra"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "a"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Ra"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "destsize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv34")); (T_arg_nexp (Ne_var "'nv33"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "sub_op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "o0"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_var "'nv48"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "MultiplyAddSub"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeData3Source"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "U"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv61")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "o0"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Ra"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv57")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv53")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv55")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv61")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "a"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Ra"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv57")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "destsize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "sub_op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "o0"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv86")); (T_arg_nexp (Ne_var "'nv85"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "_unsigned"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "U"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv101")); (T_arg_nexp (Ne_var "'nv100"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv101")); (T_arg_nexp (Ne_var "'nv100"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv101")); (T_arg_nexp (Ne_var "'nv100"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv101")); (T_arg_nexp (Ne_var "'nv100"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv101")); (T_arg_nexp (Ne_var "'nv100"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "MultiplyAddSubLong"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeData3Source"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "U"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv113")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Ra"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv109")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv107")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv105")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv105")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv107")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv113")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "a"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Ra"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv109")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "destsize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "_unsigned"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "U"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv138")); (T_arg_nexp (Ne_var "'nv137"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "MultiplyHigh"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLogicalShiftedRegister"), Unknown)), (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm6"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "d"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rd"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "n"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rn"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "reg_index"), Unknown))), Unknown)), (Id_aux( (Id "m"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt_reg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "Rm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv11")); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "atom"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "datasize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv36")); (T_arg_nexp (Ne_var "'nv35"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "setflags"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "LogicalOp"), Unknown))), Unknown)), (Id_aux( (Id "op"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LogicalOp_AND"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "opc"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv19")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LogicalOp_AND"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LogicalOp_ORR"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LogicalOp_EOR"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "LogicalOp_AND"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "sf"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_var "'nv109"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_var "'nv109"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_var "'nv109"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_var "'nv109"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv110")); (T_arg_nexp (Ne_var "'nv109"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "imm6"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'nv91"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'nv91"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'nv91"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'nv91"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_var "'nv91"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ReservedValue"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "ShiftType"), Unknown))), Unknown)), (Id_aux( (Id "shift_type"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "ShiftType"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DecodeShift"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant one), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant two), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv15")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "ShiftType"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "range"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant zero), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "shift_amount"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm6"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const six); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv112"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "invert"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "N"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv127")); (T_arg_nexp (Ne_var "'nv126"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "LogicalShiftedRegister"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "LogicalOp"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "shift_type"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "ShiftType"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "shift_amount"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "invert"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeDataSIMDFPoint1"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "decodeDataSIMDFPoint1"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Unallocated"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeDataSIMDFPoint2"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "not_implemented"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "decodeDataSIMDFPoint2"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "Unallocated"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeDataRegister"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLogicalShiftedRegister"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv30")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeAddSubtractShiftedRegister"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv61")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeAddSubtractExtendedRegister"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv92")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const three); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeAddSubtractWithCarry"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv123")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const eight); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeConditionalCompareRegister"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeConditionalCompareImmediate"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeConditionalSelect"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeData3Source"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeData2Source"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const eight)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeData1Source"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeDataImmediate"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodePCRelAddressing"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv18")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeAddSubtractImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv37")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const two); (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLogicalImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv56")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeMoveWideImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv75")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const two); (Ne_add [(Ne_const sixteen); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeBitfield"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv94")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const six); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_nexp (Ne_const twentythree)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeExtract"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv113")); (T_arg_nexp (Ne_add [(Ne_const two); (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const six); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const one)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeLoadsStores"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreExclusive"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv42")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadRegisterLiteral"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv85")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const five); (Ne_const two)])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreNoAllocatePairOffset"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv128")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreRegisterPairPostIndexed"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv171")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreRegisterPairOffset"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv214")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreRegisterPairPreIndexed"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv257")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const seven); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreRegisterUnscaledImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv300")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreRegisterImmediatePostIndexed"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv343")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreRegisterUnprivileged"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv386")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreRegisterImmediatePreIndexed"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv429")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 9)); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreRegisterRegisterOffset"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv472")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadStoreRegisterUnsignedImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv515")); (T_arg_nexp (Ne_add [(Ne_const three); (Ne_add [(Ne_const one); (Ne_add [(Ne_const two); (Ne_add [(Ne_const two); (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_add [(Ne_const five); (Ne_add [(Ne_const five); (Ne_const two)])])])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeAdvSIMDLoadStoreMultiStruct"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeAdvSIMDLoadStoreMultiStructPostIndexed"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeAdvSIMDLoadStoreSingleStruct"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeAdvSIMDLoadStoreSingleStructPostIndexed"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeSystemImplementationDefined"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeImplementationDefined"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeImplementationDefined"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeSystem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [ ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decodeBranchesExceptionSystem"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 21))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeUnconditionalBranchImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv24")); (T_arg_nexp (Ne_add [(Ne_const five); (Ne_add [(Ne_const(Nat_big_num.of_int 26)); (Ne_const one)])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 21))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeCompareBranchImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv49")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const five); (Ne_const one)])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 21))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeTestBranchImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv74")); (T_arg_nexp (Ne_add [(Ne_const six); (Ne_add [(Ne_const one); (Ne_add [(Ne_const five); (Ne_add [(Ne_const(Nat_big_num.of_int 14)); (Ne_add [(Ne_const five); (Ne_const one)])])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 21))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeConditionalBranchImmediate"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv99")); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_add [(Ne_const(Nat_big_num.of_int 19)); (Ne_add [(Ne_const one); (Ne_add [(Ne_const four); (Ne_const seven)])])])])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 21))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeExceptionGeneration"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 21))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeSystemImplementationDefined"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 21))); (T_arg_nexp (Ne_const(Nat_big_num.of_int 22))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeUnconditionalBranchRegister"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( (Effect_opt_effect (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))), Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "decode"), Unknown)), (P_aux( (P_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 25))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "Unallocated"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 25))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeDataImmediate"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 25))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeBranchesExceptionSystem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 25))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeLoadsStores"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( P_wild, (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 25))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeDataRegister"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 25))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeDataSIMDFPoint1"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_vector_concat [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const two)); (T_arg_nexp (Ne_const three)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_vector [(P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const twentyfour)); (T_arg_nexp (Ne_const(Nat_big_num.of_int 25))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "decodeDataSIMDFPoint2"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "machineCode"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_id (Id_aux( (Id "unit"), Unknown))), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "TMStart"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant seven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant eight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "nesting"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "TxNestingLevel"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TxNestingLevel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "nesting"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv7")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "<_u"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "TXIDR_EL0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "TXIDR_EL0_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "DEPTH"), Unknown)))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv8")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "lt_vec_unsigned")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "TxNestingLevel"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TxNestingLevel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant seven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant eight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "nesting"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv20")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv20")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "TxNestingLevel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "status"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "nesting"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv47")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "TMStartEffect"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "TMSTATUS_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "TMStartEffect")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "status"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector( (LEXP_aux( (LEXP_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num(Nat_big_num.of_int 10)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 10)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "TMAbortEffect"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "TMSTATUS_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "TMAbortEffect")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "TMAbortEffect")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "TMAbortEffect")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "TMCommit"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant seven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant eight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "nesting"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "TxNestingLevel"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TxNestingLevel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "nesting"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv62")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "TMCommitEffect"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "nesting"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv73")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_UndefinedFault"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "TxNestingLevel"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TxNestingLevel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant seven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant eight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "nesting"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv87")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv87")); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "minus_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "TxNestingLevel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "TxNestingLevel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "TMTest"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "TxNestingLevel"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TxNestingLevel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id ">"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "gt_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "TMAbort"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "retry"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "reason"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "TxNestingLevel"), Unknown))), (Unknown, (Some ((T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const seven)); (T_arg_nexp (Ne_const eight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), (Tag_extern (Some "TxNestingLevel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id ">"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "gt_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "status"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector_range(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const four), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "reason"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "retry"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num(Nat_big_num.of_int 9)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 9)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "TMAbortEffect"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "TMSTATUS_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), (Tag_extern (Some "TMAbortEffect")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "TMAbortEffect")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "TMAbortEffect")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "CompareAndBranch"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "iszero"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "IsZero"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "iszero"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "BranchTo"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rPC"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv152")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv153")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv152")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "BranchType_JMP"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "BranchConditional"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "ConditionHolds"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "BranchTo"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rPC"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv183")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv182")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "BranchType_JMP"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "GenerateExceptionEL1"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "AArch64_CallSupervisor"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "GenerateExceptionEL2"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv260")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv262")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv257")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv259")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "IsSecure"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "hvc_enable"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "SCR_EL3"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "HCE"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "NOT'"), Unknown)), [(E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "HCR_EL2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "HCR_type"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "HCD"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "hvc_enable"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv279")); (T_arg_nexp (Ne_var "'nv278"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv279")); (T_arg_nexp (Ne_var "'nv278"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv279")); (T_arg_nexp (Ne_var "'nv278"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv279")); (T_arg_nexp (Ne_var "'nv278"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv279")); (T_arg_nexp (Ne_var "'nv278"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_UndefinedFault"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CallHypervisor"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "GenerateExceptionEL3"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv289")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv291")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CheckForSMCTrap"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_field( (E_aux( (E_id (Id_aux( (Id "SCR_EL3"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "SCRType"), (T_app( "register", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "SMD"), Unknown)))), (Unknown, (Some ((T_id "bit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv308")); (T_arg_nexp (Ne_var "'nv307"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_UndefinedFault"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CallSecureMonitor"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "DebugBreakpoint"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "comment"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "AArch64_SoftwareBreakpoint"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "comment"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "ExternalDebugBreakpoint"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "Halt"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "DebugHalt_HaltInstruction"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "DebugSwitchToExceptionLevel"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "target_level"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "DCPSInstruction"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "target_level"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "MoveSystemImmediate"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "field"), Unknown))), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "field"), Unknown))), (Unknown, (Some ((T_id "PSTATEField"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "PSTATEField_SP"), Unknown)), [])), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_SP"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "SPSel")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "PSTATEField_DAIFSet"), Unknown)), [])), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_D"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_D"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_A"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_A"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_I"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_I"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_F"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_F"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "PSTATEField_DAIFClr"), Unknown)), [])), (Unknown, (Some ((T_id "PSTATEField"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_D"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_D"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT'"), Unknown)), [
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num three), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const three))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_A"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_A"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT'"), Unknown)), [
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_I"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_I"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT'"), Unknown)), [
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "PSTATE_F"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "PSTATE_F"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT'"), Unknown)), [
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), (Tag_extern (Some "DAIF")), [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "Hint"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "SystemHintOp_YIELD"), Unknown)), [])), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Hint_Yield"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "SystemHintOp_WFE"), Unknown)), [])), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "EventRegistered"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ClearEventRegister"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if(
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv386")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv388")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CheckForWFxTrap"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "IsSecure"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv454")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv456")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv451")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv453")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CheckForWFxTrap"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv464")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv466")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CheckForWFxTrap"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_true, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "WaitForEvent"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "SystemHintOp_WFI"), Unknown)), [])), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "InterruptPending"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if(
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv469")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv471")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CheckForWFxTrap"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "IsSecure"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv537")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL0"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv539")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv534")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL1"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv536")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CheckForWFxTrap"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "EL2"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "HaveEL"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "PSTATE_EL"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv547")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv549")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_CheckForWFxTrap"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "EL3"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "WaitForInterrupt"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "SystemHintOp_SEV"), Unknown)), [])), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SendEvent"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "SystemHintOp_SEVL"), Unknown)), [])), (Unknown, (Some ((T_id "SystemHintOp"), (Tag_enum five), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "EventRegisterSet"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_id "SystemHintOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "ClearExclusiveMonitor"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "ClearExclusiveLocal"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "ProcessorID"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "Barrier"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "MemBarrierOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemBarrierOp_DSB"), Unknown)), [])), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DataSynchronizationBarrier"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemBarrierOp_DMB"), Unknown)), [])), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "DataMemoryBarrier"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "domain"), Unknown))), (Unknown, (Some ((T_id "MBReqDomain"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "types"), Unknown))), (Unknown, (Some ((T_id "MBReqTypes"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemBarrierOp_ISB"), Unknown)), [])), (Unknown, (Some ((T_id "MemBarrierOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "InstructionSynchronizationBarrier"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_barr, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "System"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sys_op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sys_op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sys_op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sys_crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sys_crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "has_result"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "has_result"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SysOp_R"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "sys_op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "sys_op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "SysOp_W"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "sys_op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "MoveSystemRegister"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sys_op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sys_op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sys_op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sys_crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sys_crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "read"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "read"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "System_Get"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "sys_op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "sys_op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "System_Put"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "sys_op0"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op1"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crn"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_crm"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "sys_op2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "ImplementationDefinedTestBeginEnd"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "isEnd"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "isEnd"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "test ends"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "test begins"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "ImplementationDefinedStopFetching"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "stop fetching instructions"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "ImplementationDefinedThreadStart"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "info"), Unknown)), [(E_aux( (E_lit (L_aux( (L_string "thread start"), Unknown))), (Unknown, (Some ((T_id "string"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "TestBitAndBranch"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "bit_pos"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "bit_val"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_vector_access(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "bit_pos"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "bit_val"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "BranchTo"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rPC"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv591")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv592")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv591")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "BranchType_JMP"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "BranchImmediate"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "BranchType_CALL"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirty), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirty))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rPC"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv641")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv641")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "BranchTo"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rPC"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv663")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv664")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv663")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "BranchRegister"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum seven), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "target"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "BranchType_CALL"), Unknown))), (Unknown, (Some ((T_id "BranchType"), (Tag_enum six), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirty), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirty))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rPC"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv714")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num four), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const four))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv714")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "BranchTo"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "target"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "branch_type"), Unknown))), (Unknown, (Some ((T_id "BranchType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "ExceptionReturn"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "AArch64_ExceptionReturn"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "rELR'"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "rSPSR"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "DebugRestorePState"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "DRPSInstruction"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "LoadLiteral"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rPC"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv742")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv743")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv742")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "data"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_LOAD"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "flush_read_buffer"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "rMem"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "empty_read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "AccType_NORMAL"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 11)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv767"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv767"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_PREFETCH"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Prefetch"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "LoadStoreAcqExc"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "s"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "pair"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "data"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "dbytes"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv781"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "rt_unknown"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "rn_unknown"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "pair"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)), (E_aux( (E_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "s"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "pair"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "s"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "s"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "status"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)), (E_aux( (E_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "speculate_exclusive_success"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), (Tag_extern None), [], (Effect_aux( (Effect_set [(BE_aux( BE_exmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_exmem, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_exmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_exmem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "s"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_exmem, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_exmem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1049")); (T_arg_nexp (Ne_var "'nv1048"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1049")); (T_arg_nexp (Ne_var "'nv1048"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1049")); (T_arg_nexp (Ne_var "'nv1048"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1049")); (T_arg_nexp (Ne_var "'nv1048"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1049")); (T_arg_nexp (Ne_var "'nv1048"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "CheckSPAlignment"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rSP"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "rn_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_STORE"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "wMem_Addr"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "rt_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "pair"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "el1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "el2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "el1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "BigEndian"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1069")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1071")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_var "'R"); (Ne_var "'R")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_var "'R")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1073")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "el1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1075")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_var "'R"); (Ne_var "'R")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_var "'R")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "data"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "status"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "AArch64_ExclusiveMonitorsPass"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "status"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "flush_write_buffer_exclusive"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "wMem_exclusive"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "empty_write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv1077"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv1077"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "bool"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "flush_write_buffer"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "wMem"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "empty_write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv1078"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv1078"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_LOAD"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "AArch64_SetExclusiveMonitors"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "pair"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assert( (E_aux( (E_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "None"), Unknown)), [])), (Unknown, (Some ((T_fn( (T_id "unit"), (T_app( "option", (T_args [(T_arg_typ (T_id "string"))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "rt_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "flush_read_buffer"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "rMem_exclusive"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "empty_read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv1093"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv1093"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "BigEndian"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv1105"), (Ne_var "'nv1106"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1099")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv1099"), (Ne_var "'nv1100"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv1099"), (Ne_var "'nv1100"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv1099"), (Ne_var "'nv1100"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv1139"), (Ne_var "'nv1140"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1135")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv1135"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv1135"), (Ne_const zero))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv1135"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv1173"), (Ne_var "'nv1174"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1169")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv1169"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv1169"), (Ne_const zero))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv1169"), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv1209"), (Ne_var "'nv1210"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "elsize"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1203")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv1203"), (Ne_var "'nv1204"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_var "'nv1203"), (Ne_var "'nv1204"))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv1203"), (Ne_var "'nv1204"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1236")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Align"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1238")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign(
+ (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "iswrite"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "secondstage"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_Abort"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "AArch64_AlignmentFault"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "iswrite"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "secondstage"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "FaultRecord"), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "read_buffer_type"), Unknown))), Unknown)), (Id_aux( (Id "read_buffer"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rMem_exclusive"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "empty_read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1252")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1252")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rMem_exclusive"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1283")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1283")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "value"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyseven), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant onetwentyeight), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "flush_read_buffer"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv1307"), (Ne_var "'nv1308"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv1302"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv1302"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtythree), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const zero))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const sixtythree), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_id (Id_aux( (Id "value"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num onetwentyseven), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyseven))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "flush_read_buffer"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "rMem'"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "empty_read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "excl"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv1333"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv1333"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_exmem, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_exmem, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "LoadStorePairNonTemp"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "scale"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "data1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "data2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "dbytes"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv1346"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "rt_unknown"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "CheckSPAlignment"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rSP"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1421")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1422")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1421")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Addr"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv1460"), (Ne_var "'nv1461"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1479")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1480")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1479")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_var "fresh_v"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wSP"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_STORE"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "rt_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "rt_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "write_buffer_type"), Unknown))), Unknown)), (Id_aux( (Id "write_buffer"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "empty_write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1581")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1581")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv1569"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv1569"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1610")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1610")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv1600"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv1600"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "flush_write_buffer"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_LOAD"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "read_buffer_type"), Unknown))), Unknown)), (Id_aux( (Id "read_buffer"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rMem"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "empty_read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1641")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1641")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rMem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1670")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1670")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant two), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant two), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "read_data"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "flush_read_buffer"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv1692"), (Ne_var "'nv1693"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv1689"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv1689"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "read_data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv1715"), (Ne_var "'nv1716"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1709")); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "read_data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv1798"), (Ne_var "'nv1799"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv1768"), (Ne_var "'nv1769"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv1744")); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "rt_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "LoadImmediate"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "data"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wb_unknown"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "rt_unknown"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_PREFETCH"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "CheckSPAlignment"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rSP"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2303")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2304")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2303")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Addr"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv2346"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2360")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2361")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2360")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_var "fresh_v"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wSP"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_STORE"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "rt_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "flush_write_buffer"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "wMem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "empty_write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv2408"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv2401"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv2401"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_LOAD"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "flush_read_buffer"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "rMem"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "empty_read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv2440"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv2424"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv2417"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv2417"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_PREFETCH"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Prefetch"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "LoadRegister"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "extend_type"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum eight), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "offset"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "ExtendReg"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "extend_type"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "data"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wb_unknown"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "rt_unknown"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_PREFETCH"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "CheckSPAlignment"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rSP"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2946")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2947")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv2946")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Addr"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv2989"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3003")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3004")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv3003")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_var "fresh_v"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wSP"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_STORE"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "rt_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "flush_write_buffer"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "wMem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "empty_write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv3051"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv3044"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv3044"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_LOAD"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "flush_read_buffer"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "rMem"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "empty_read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv3083"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv3067"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv3060"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv3060"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ZeroExtend"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "regsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_PREFETCH"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Prefetch"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const four)); (T_arg_nexp (Ne_const five)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "LoadStorePair"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), (Tag_enum(Nat_big_num.of_int 12)), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "address"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "data1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "data2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "dbytes"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)), (E_aux( (E_lit (L_aux( (L_num eight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const eight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv3106"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "rt_unknown"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "boolean"), Unknown))), Unknown)), (Id_aux( (Id "wb_unknown"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_or_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "!="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "neq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_LOAD"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_app( (Id_aux( (Id "CheckSPAlignment"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rSP"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4197")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4198")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4197")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MemOp_STORE"), Unknown))), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem_Addr"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv4236"), (Ne_var "'nv4237"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_false, Unknown))), (Unknown, (Some ((T_id "bool"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_eamem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "wback"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "postindex"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4255")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "offset"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4256")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4255")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_var "fresh_v"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wSP"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address'"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "memop"), Unknown))), (Unknown, (Some ((T_id "MemOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_STORE"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "rt_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "rt_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "write_buffer_type"), Unknown))), Unknown)), (Id_aux( (Id "write_buffer"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "empty_write_buffer"), Unknown))), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4357")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4357")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv4345"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv4345"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "wMem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4386")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4386")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv4376"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv4376"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "write_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_app( (Id_aux( (Id "flush_write_buffer"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "write_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "write_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_wmv, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "MemOp_LOAD"), Unknown)), [])), (Unknown, (Some ((T_id "MemOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "read_buffer_type"), Unknown))), Unknown)), (Id_aux( (Id "read_buffer"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rMem"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "empty_read_buffer"), Unknown))), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4417")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4417")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rMem"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "address"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4446")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4446")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "acctype"), Unknown))), (Unknown, (Some ((T_id "AccType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "read_buffer_type"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant two), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant two), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "read_data"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "flush_read_buffer"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "read_buffer"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "read_buffer_type"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "dbytes"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv4468"), (Ne_var "'nv4469"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'nv4465"), (Ne_const eight))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'nv4465"), (Ne_const eight)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rmem, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "read_data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv4491"), (Ne_var "'nv4492"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4485")); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "read_data"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_var "'D"), (Ne_const two))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_var "'D"), (Ne_const two)))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv4574"), (Ne_var "'nv4575"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv4544"), (Ne_var "'nv4545"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4520")); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "rt_unknown"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_id "boolean"), (T_id "bit"))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "UNKNOWN"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv1")); (T_arg_nexp (Ne_var "'nv0"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "_signed"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "SignExtend"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "t2"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "data2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_escape, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rmem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "AddSubImmediate"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rSP"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "carry_in"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "AddWithCarry"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "0v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "1v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wSP"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "BitfieldMove"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "inzero"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "extend"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "R"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "wmask"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "tmask"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "dst"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "inzero"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "src"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "bot"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "dst"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4669")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "wmask"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4669")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4669")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_and")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4662")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ROR"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "src"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "R"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4665")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "wmask"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4665")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4665")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_and")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4662")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4662")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_or")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "top"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "extend"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Replicate"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "bot"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_vector_access( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "src"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "S"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const one); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "dst"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "top"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4689")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "tmask"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4689")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4689")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_and")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4684")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "bot"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4686")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "tmask"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4686")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4686")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_and")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4684")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4684")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_or")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "ExtractRegister"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "lsb"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_constant two), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_times( (Nexp_aux( (Nexp_constant two), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "concat"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_const two), (Ne_var "'R"))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_const two), (Ne_var "'R")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4697")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4699")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_var "'R"); (Ne_var "'R")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_var "'R")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_const two), (Ne_var "'R"))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_const two), (Ne_var "'R")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "concat"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_const two), (Ne_var "'R"))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_const two), (Ne_var "'R")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_mult( (Ne_const two), (Ne_var "'R"))); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_mult( (Ne_const two), (Ne_var "'R")))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "lsb"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv4767"); (Ne_var "'nv4768")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv4739"), (Ne_var "'nv4740"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "lsb"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4703")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "LogicalImmediate"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "LogicalOp_AND"), Unknown)), [])), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4799")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4799")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4799")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_and")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "LogicalOp_ORR"), Unknown)), [])), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4801")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4801")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4801")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_or")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "LogicalOp_EOR"), Unknown)), [])), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4803")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "^"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4803")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4803")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_xor")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_vector_access(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4844")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv4818"), (Ne_var "'nv4819"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4806")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_app( (Id_aux( (Id "IsZeroBit"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4847")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4849")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const one); (Ne_const two)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_const two)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4808")); (T_arg_nexp (Ne_var "'nv4807")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const one); (Ne_var "'nv4807")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_var "'nv4807")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wSP"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "MoveWide"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "pos"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opcode"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "opcode"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MoveWideOp_K"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector_range( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "pos"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num fifteen), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const fifteen))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv4904"); (Ne_var "'nv4905")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "pos"), Unknown))), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4901")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv4901"), (Ne_var "'nv4900"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const fifteen)); (T_arg_nexp (Ne_const sixteen)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4901")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv4901"), (Ne_var "'nv4900"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "opcode"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "MoveWideOp_N"), Unknown))), (Unknown, (Some ((T_id "MoveWideOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "Address"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "page"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtythree), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant sixtyfour), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "base"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rPC"), Unknown)), [])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "page"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector_range( (LEXP_aux( (LEXP_id (Id_aux( (Id "base"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num(Nat_big_num.of_int 11)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 11)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 11))); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const(Nat_big_num.of_int 11)), (Ne_const zero))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num(Nat_big_num.of_int 12)), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const(Nat_big_num.of_int 12)))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const(Nat_big_num.of_int 12)); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const(Nat_big_num.of_int 12))); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "base"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4956")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4957")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv4956")); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "AddSubExtendRegister"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "extend_type"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), (Tag_enum eight), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const seven))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rSP"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ExtendReg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "extend_type"), Unknown))), (Unknown, (Some ((T_id "ExtendType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const seven))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "carry_in"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "AddWithCarry"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "2v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "3v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "2v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "3v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num thirtyone), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtyone))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_and_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wSP"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "AddSubShiftedRegister"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift_type"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift_amount"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ShiftReg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "shift_type"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift_amount"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "carry_in"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "AddWithCarry"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "4v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "5v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "4v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "5v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "AddSubCarry"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "AddWithCarry"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "PSTATE_C"), Unknown))), (Unknown, (Some ((T_id "bit"), Tag_alias, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "6v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "7v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "6v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "7v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "ConditionalCompareImmediate"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "flags"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "imm"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "carry_in"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "flags'"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "flags"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "ConditionHolds"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "AddWithCarry"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "8v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "9v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "8v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "9v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "flags'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "flags'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "ConditionalCompareRegister"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "flags"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown)), (Id_aux( (Id "carry_in"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "flags'"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "flags"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "ConditionHolds"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_let( (LB_aux( (LB_val_implicit( (P_aux( (P_tup [(P_aux( P_wild, (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_case( (E_aux( (E_app( (Id_aux( (Id "AddWithCarry"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "carry_in"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_tup [(P_aux( (P_id (Id_aux( (Id "10v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "11v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_tuple [(E_aux( (E_id (Id_aux( (Id "10v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "11v"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_tup [(T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))); (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))])))]), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "flags'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "nzcv"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "flags'"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "ConditionalSelect"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "else_inv"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "else_inc"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "ConditionHolds"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "condition"), Unknown))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "else_inv"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "else_inc"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5077")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5077")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "add_vec_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "Reverse"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "RevOp"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant five), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant six), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "V"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num six), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const six))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "RevOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "RevOp_REV16"), Unknown)), [])), (Unknown, (Some ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "V"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "RevOp_REV32"), Unknown)), [])), (Unknown, (Some ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "V"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "RevOp_REV64"), Unknown)), [])), (Unknown, (Some ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "V"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "RevOp_RBIT"), Unknown)), [])), (Unknown, (Some ((T_id "RevOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "V"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq_range")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_for( (Id_aux( (Id "vbit"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num five), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Ord_aux( Ord_inc, Unknown)),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_case(
+ (E_aux( (E_vector_access( (E_aux( (E_id (Id_aux( (Id "V"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const five)); (T_arg_nexp (Ne_const six)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "vbit"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5135")); (T_arg_nexp (Ne_var "'nv5134"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5135")); (T_arg_nexp (Ne_var "'nv5134"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5135")); (T_arg_nexp (Ne_var "'nv5134"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5135")); (T_arg_nexp (Ne_var "'nv5134"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_var "'nv5135")); (T_arg_nexp (Ne_var "'nv5134"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "tmp"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "vsize"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "lsl"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "vbit"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const five))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv5139"), (Ne_exp (Ne_var "'nv5140")))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_for( (Id_aux( (Id "base"), Unknown)), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv5148"), (Ne_var "'nv5149"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_id (Id_aux( (Id "vsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv5176"), (Ne_var "'nv5177"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Ord_aux( Ord_inc, Unknown)),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux(
+ (LEXP_vector_range(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "base"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "vsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5250"); (Ne_var "'nv5251")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv5224"), (Ne_var "'nv5225"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "base"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5191")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv5191"), (Ne_var "'nv5190"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "tmp"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "base"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_id (Id_aux( (Id "vsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv5424"), (Ne_var "'nv5425"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5394"); (Ne_var "'nv5395")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv5350"), (Ne_var "'nv5351"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "base"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "vsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5438"); (Ne_var "'nv5439")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5282")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv5191"), (Ne_var "'nv5190"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5191")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv5191"), (Ne_var "'nv5190"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_vector_range(
+ (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "base"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_lit (L_aux( (L_num two), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const two))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)), (E_aux( (E_id (Id_aux( (Id "vsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv5608"), (Ne_var "'nv5609"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5578"); (Ne_var "'nv5579")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv5534"), (Ne_var "'nv5535"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "base"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "vsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5622"); (Ne_var "'nv5623")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5467")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv5467"), (Ne_var "'nv5466"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "tmp"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "base"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)), (E_aux( (E_id (Id_aux( (Id "vsize"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5714"); (Ne_var "'nv5715")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv5688"), (Ne_var "'nv5689"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_id (Id_aux( (Id "base"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'nv5142"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5654")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv5467"), (Ne_var "'nv5466"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5467")); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_var "'nv5467"), (Ne_var "'nv5466"))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))) ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))) ), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "CountLeading"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "opcode"), Unknown))), (Unknown, (Some ((T_id "CountOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "uinteger"), Unknown))), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "opcode"), Unknown))), (Unknown, (Some ((T_id "CountOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "=="), Unknown)), (E_aux( (E_id (Id_aux( (Id "CountOp_CLZ"), Unknown))), (Unknown, (Some ((T_id "CountOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "eq")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "CountLeadingZeroBits"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'R"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "CountLeadingSignBits"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_var "'R"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "uinteger"), (T_id "nat"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "Division"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "integer"), Unknown))), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "IsZero"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "Int"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "quot"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Int"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv5769"))]))), (Tag_extern (Some "quot")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "Shift"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift_type"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ShiftReg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "shift_type"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv5799"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "mod"), Unknown)), (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_minus( (Ne_var "'nv5792"), (Ne_const one))))]))), (Tag_extern (Some "modulo")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "CRC"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "crc32c"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_if( (E_aux( (E_app( (Id_aux( (Id "~"), Unknown)), [
+ (E_aux( (E_app( (Id_aux( (Id "HaveCRCExt"), Unknown)), [])), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), (Tag_extern (Some "bitwise_not_bit")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "UnallocatedEncoding"), Unknown)), [])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_escape, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "acc"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "_val"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "size"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtyone), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant thirtytwo), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "poly"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "crc32c"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_one, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_constant thirtytwo), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_constant thirtytwo), Unknown)), (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "tempacc"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_const thirtytwo); (Ne_var "'D")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "BitReverse"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "acc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5808")); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [(E_aux( (E_app( (Id_aux( (Id "length"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "_val"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), (Tag_extern (Some "length")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_const thirtytwo); (Ne_var "'D")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant thirtytwo), Unknown)))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant thirtytwo), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "tempval"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "BitReverse"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "_val"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5814")); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Zeros"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num thirtytwo), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const thirtytwo))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "BitReverse"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Poly32Mod2"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "tempacc"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_const thirtytwo); (Ne_var "'D")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5822")); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "^"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "tempval"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const thirtytwo)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5822")); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv5822")); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_xor")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_const thirtytwo); (Ne_var "'D")]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_var "'D")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "poly"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const thirtyone)); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const thirtytwo); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const thirtytwo)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rreg, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "MultiplyAddSub"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand3"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "integer"), Unknown))), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand3"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv5914"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv5912"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv5910"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv5895"), (Ne_var "'nv5896"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv5861"), (Ne_var "'nv5862"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand3"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv6002"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv6000"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "UInt"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'nv5998"))]))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv5983"), (Ne_var "'nv5984"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv5947"); (Ne_var "'nv5948")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "MultiplyAddSubLong"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand3"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "integer"), Unknown))), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "sub_op"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "Int"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand3"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "Int"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Int"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv6058"), (Ne_var "'nv6059"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv6030"), (Ne_var "'nv6031"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "Int"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand3"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "+"), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "Int"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Int"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'D"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'D")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv6126"), (Ne_var "'nv6127"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'nv6096"); (Ne_var "'nv6097")]))]))), (Tag_extern (Some "add")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const sixtythree)); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_const sixtyfour); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_const sixtyfour)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "MultiplyHigh"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "a"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "destsize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_id (Id_aux( (Id "integer"), Unknown))), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_app( (Id_aux( (Id "Int"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "*"), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "Int"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "_unsigned"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_mult( (Ne_var "'nv6150"), (Ne_var "'nv6151"))))]))), (Tag_extern (Some "multiply")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_subrange( (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [
+ (E_aux( (E_lit (L_aux( (L_num onetwentyeight), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyeight))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_abbrev( (T_abbrev( (T_id "integer"), (T_id "int"))), (T_app( "range", (T_args [(T_arg_nexp (Ne_unary Ne_inf)); (T_arg_nexp Ne_inf)]))))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_const onetwentyeight)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num onetwentyseven), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const onetwentyseven))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (E_aux( (E_lit (L_aux( (L_num sixtyfour), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const sixtyfour))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const onetwentyseven)); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)]); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_add [(Ne_minus( (Ne_const onetwentyseven), (Ne_const sixtyfour))); (Ne_const one)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;(FCL_aux( (FCL_Funcl( (Id_aux( (Id "execute"), Unknown)), (P_aux( (P_app( (Id_aux( (Id "LogicalShiftedRegister"), Unknown)), [(P_aux( (P_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum three), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift_type"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), (Tag_enum four), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "shift_amount"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))); (P_aux( (P_id (Id_aux( (Id "invert"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand1"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "rX"), Unknown)), [
+ (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "n"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "operand2"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "ShiftReg"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "m"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_id (Id_aux( (Id "shift_type"), Unknown))), (Unknown, (Some ((T_id "ShiftType"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_id (Id_aux( (Id "shift_amount"), Unknown))), (Unknown, (Some ((T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const sixtythree))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "invert"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "NOT"), Unknown)), [(E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_sum( (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown)), (Nexp_aux( (Nexp_constant ( Nat_big_num.sub zero(Nat_big_num.of_int 1))), Unknown)))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)), (Id_aux( (Id "result"), Unknown)))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app( (Id_aux( (Id "to_vec_dec"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( (L_num zero), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const zero))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "to_vec_dec")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_intro, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));
+ (E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "op"), Unknown))), (Unknown, (Some ((T_id "LogicalOp"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "LogicalOp_AND"), Unknown)), [])), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6177")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "&"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6177")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6177")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_and")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "LogicalOp_ORR"), Unknown)), [])), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6179")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "|"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6179")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6179")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_or")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))) ;
+ (Pat_aux( (Pat_exp( (P_aux( (P_app( (Id_aux( (Id "LogicalOp_EOR"), Unknown)), [])), (Unknown, (Some ((T_id "LogicalOp"), (Tag_enum two), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_app_infix( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand1"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6181")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "^"), Unknown)),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "operand2"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6181")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6181")); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), (Tag_extern (Some "bitwise_xor")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_set, [], (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_lset, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_if( (E_aux( (E_id (Id_aux( (Id "setflags"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "boolean"), (T_id "bit"))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wPSTATE_NZCV"), Unknown)), [(E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_app( (Id_aux( (Id "vector"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant three), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_constant four), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_order (Ord_aux( Ord_dec, Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_id (Id_aux( (Id "bit"), Unknown))), Unknown))), Unknown))])), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_vector_access(
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app_infix( (E_aux( (E_id (Id_aux( (Id "datasize"), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_var "'R"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), (Id_aux( (Id "-"), Unknown)), (E_aux( (E_lit (L_aux( (L_num one), Unknown))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_const one))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "atom", (T_args [(T_arg_nexp (Ne_minus( (Ne_var "'nv6194"), (Ne_var "'nv6195"))))]))), (Tag_extern (Some "minus")), [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6184")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector_append( (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_app( (Id_aux( (Id "IsZeroBit"), Unknown)), [
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "bit"), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6221")); (T_arg_nexp (Ne_const one)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)),
+ (E_aux( (E_vector [(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))));(E_aux( (E_lit (L_aux( L_zero, Unknown))), (Unknown, (Some ((T_id "bit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))]), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const one)); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6223")); (T_arg_nexp (Ne_const two)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const one); (Ne_const two)]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_const two)])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_var "'nv6186")); (T_arg_nexp (Ne_var "'nv6185")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_minus( (Ne_add [(Ne_const one); (Ne_var "'nv6185")]), (Ne_const one)))); (T_arg_nexp (Ne_add [(Ne_const one); (Ne_var "'nv6185")])); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_const three)); (T_arg_nexp (Ne_const four)); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_lit (L_aux( L_unit, Unknown))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))));
+ (E_aux( (E_assign( (LEXP_aux( (LEXP_memory( (Id_aux( (Id "wX"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "d"), Unknown))), (Unknown, (Some ((T_abbrev( (T_id "reg_index"), (T_app( "range", (T_args [(T_arg_nexp (Ne_const zero)); (T_arg_nexp (Ne_const thirtyone))]))))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown))))))),
+ (E_aux( (E_cast( (Typ_aux( (Typ_var (Kid_aux( (Var "length"), Unknown))), Unknown)), (E_aux( (E_id (Id_aux( (Id "result"), Unknown))), (Unknown, (Some ((T_app( "reg", (T_args [(T_arg_typ (T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "vector", (T_args [(T_arg_nexp (Ne_add [(Ne_var "'R"); (Ne_const ( Nat_big_num.sub zero(Nat_big_num.of_int 1)))])); (T_arg_nexp (Ne_var "'R")); (T_arg_order (Ord_aux( Ord_dec, Unknown))); (T_arg_typ (T_id "bit"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)))))))] ), (Unknown, (Some ((T_id "unit"), Tag_spec, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown))))))))), (Unknown,(Some ((T_id "unit"), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_wreg, Unknown)); (BE_aux( BE_lset, Unknown)); (BE_aux( BE_rreg, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (T_id "unit"), (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_barr, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_exmem, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [(BE_aux( BE_rreg, Unknown)); (BE_aux( BE_wreg, Unknown)); (BE_aux( BE_rmem, Unknown)); (BE_aux( BE_barr, Unknown)); (BE_aux( BE_eamem, Unknown)); (BE_aux( BE_wmv, Unknown)); (BE_aux( BE_exmem, Unknown)); (BE_aux( BE_escape, Unknown)) ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+(DEF_spec (VS_aux( (VS_val_spec( (TypSchm_aux( (TypSchm_ts( (TypQ_aux( (TypQ_tq [(QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'R"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'R"), Unknown)), [Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown)); (QI_aux( (QI_id (KOpt_aux( (KOpt_kind( (K_aux( (K_kind [(BK_aux( BK_nat, Unknown))]), Unknown)), (Kid_aux( (Var "'D"), Unknown)))), Unknown))), Unknown)); (QI_aux( (QI_const (NC_aux( (NC_nat_set_bounded( (Kid_aux( (Var "'D"), Unknown)), [Nat_big_num.of_int 8;Nat_big_num.of_int 16;Nat_big_num.of_int 32;Nat_big_num.of_int 64])), Unknown))), Unknown))]), Unknown)), (Typ_aux( (Typ_fn( (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown)), (Typ_aux( (Typ_app( (Id_aux( (Id "option"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))), Unknown)))), Unknown)), (Id_aux( (Id "supported_instructions"), Unknown)))),
+ (Unknown, (Some ((T_fn( (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_spec, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), 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"), Unknown)), [(Typ_arg_aux( (Typ_arg_typ (Typ_aux( (Typ_app( (Id_aux( (Id "ast"), Unknown)), [(Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'R"), Unknown))), Unknown))), Unknown)); (Typ_arg_aux( (Typ_arg_nexp (Nexp_aux( (Nexp_var (Kid_aux( (Var "'D"), Unknown))), Unknown))), Unknown))])), Unknown))), Unknown))])), Unknown)))), Unknown)), (Effect_opt_aux( Effect_opt_pure, Unknown)), [
+ (FCL_aux( (FCL_Funcl( (Id_aux( (Id "supported_instructions"), Unknown)), (P_aux( (P_id (Id_aux( (Id "instr"), Unknown))), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_block [(E_aux( (E_case( (E_aux( (E_id (Id_aux( (Id "instr"), Unknown))), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))), [
+ (Pat_aux( (Pat_exp( (P_aux( P_wild, (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))),
+ (E_aux( (E_app( (Id_aux( (Id "Some"), Unknown)), [(E_aux( (E_id (Id_aux( (Id "instr"), Unknown))), (Unknown, (Some ((T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_ctor, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))])), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))] ), (Unknown, (Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_empty, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))))), (Unknown,(Some ((T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown)))))))
+ ;])), (Unknown, (Some ((T_fn( (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))), (T_app( "option", (T_args [(T_arg_typ (T_app( "ast", (T_args [(T_arg_nexp (Ne_var "'R")); (T_arg_nexp (Ne_var "'D"))]))))]))), (Effect_aux( (Effect_set [ ]), Unknown)))), Tag_global, [], (Effect_aux( (Effect_set [ ]), Unknown)), (Effect_aux( (Effect_set [ ]), Unknown))))))));
+])
diff --git a/aarch64_small/armV8.sail b/aarch64_small/armV8.sail
new file mode 100644
index 00000000..a3082261
--- /dev/null
+++ b/aarch64_small/armV8.sail
@@ -0,0 +1,2457 @@
+/*========================================================================*/
+/* */
+/* Copyright (c) 2015-2017 Shaked Flur */
+/* Copyright (c) 2015-2017 Kathyrn Gray */
+/* All rights reserved. */
+/* */
+/* This software was developed by the University of Cambridge Computer */
+/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */
+/* (REMS) project, funded by EPSRC grant EP/K008528/1. */
+/* */
+/* 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. */
+/*========================================================================*/
+
+
+
+union ast ('R : Int, /* register size */
+ 'D : Int), /* data size */
+ 'R in {32, 64} & 'D in {8,16,32,64}
+ =
+{
+ Unallocated : unit,
+ ImplementationDefinedTestBeginEnd : boolean,
+ ImplementationDefinedStopFetching : unit,
+ ImplementationDefinedThreadStart : unit,
+
+ /* transactional memory, not part of the official spec */
+ TMStart : reg_index,
+ TMCommit : unit,
+ TMAbort : (boolean,bits(5)),
+ TMTest : unit,
+
+ CompareAndBranch : (reg_index, atom('R), boolean, bits(64)),
+ BranchConditional : (bits(64), bits(4)),
+ GenerateExceptionEL1 : (bits(16)), /* TODO: add to .hgen */
+ GenerateExceptionEL2 : (bits(16)), /* TODO: add to .hgen */
+ GenerateExceptionEL3 : (bits(16)), /* TODO: add to .hgen */
+ DebugBreakpoint : (bits(16)), /* TODO: add to .hgen */
+ ExternalDebugBreakpoint : unit, /* TODO: add to .hgen */
+ DebugSwitchToExceptionLevel : (bits(2)), /* TODO: add to .hgen */
+ MoveSystemImmediate : (bits(4),PSTATEField),
+ Hint : (SystemHintOp),
+ ClearExclusiveMonitor : (uinteger),
+ Barrier : (MemBarrierOp,MBReqDomain,MBReqTypes),
+ System : (reg_index,uinteger,uinteger,uinteger,uinteger,uinteger,boolean),
+ MoveSystemRegister : (reg_index,uinteger,uinteger,uinteger,uinteger,uinteger,boolean),
+ TestBitAndBranch : (reg_index,atom('R),uinteger,bit,bits(64)),
+ BranchImmediate : (BranchType,bits(64)),
+ BranchRegister : (reg_index,BranchType),
+ ExceptionReturn : unit, /* TODO: add to .hgen */
+ DebugRestorePState : unit, /* TODO: add to .hgen */
+ LoadLiteral : (reg_index,MemOp,boolean,uinteger,bits(64),atom('D)),
+ LoadStoreAcqExc : (reg_index,reg_index,reg_index,reg_index,AccType,boolean,boolean,MemOp,uinteger,atom('R),atom('D)),
+ LoadStorePairNonTemp : (boolean,boolean,reg_index,reg_index,reg_index,AccType,MemOp,uinteger,atom('D),bits(64)),
+ LoadImmediate : (reg_index,reg_index,AccType,MemOp,boolean,boolean,boolean,bits(64),atom('R),atom('D)),
+ LoadRegister : (reg_index,reg_index,reg_index,AccType,MemOp,boolean,boolean,boolean,ExtendType,uinteger,atom('R),atom('D)),
+ LoadStorePair : (boolean,boolean,reg_index,reg_index,reg_index,AccType,MemOp,boolean,atom('D),bits(64)),
+ AddSubImmediate : (reg_index,reg_index,atom('R),boolean,boolean,bits('R)),
+ BitfieldMove : (reg_index,reg_index,atom('R),boolean,boolean,uinteger,uinteger,bits('R),bits('R)),
+ ExtractRegister : (reg_index,reg_index,reg_index,('R),uinteger),
+ LogicalImmediate : (reg_index,reg_index,('R),boolean,LogicalOp,bits('R)),
+ MoveWide : (reg_index,('R),bits(16),uinteger,MoveWideOp),
+ Address : (reg_index,boolean,bits(64)),
+ AddSubExtendRegister : (reg_index,reg_index,reg_index,atom('R),boolean,boolean,ExtendType,range(0,7)),
+ AddSubShiftedRegister : (reg_index,reg_index,reg_index,atom('R),boolean,boolean,ShiftType,range(0,63)),
+ AddSubCarry : (reg_index,reg_index,reg_index,atom('R),boolean,boolean),
+ ConditionalCompareImmediate : (reg_index,atom('R),boolean,bits(4),bits(4),bits('R)),
+ ConditionalCompareRegister : (reg_index,reg_index,atom('R),boolean,bits(4),bits(4)),
+ ConditionalSelect : (reg_index,reg_index,reg_index,atom('R),bits(4),boolean,boolean),
+ Reverse : (reg_index,reg_index,atom('R),RevOp),
+ CountLeading : (reg_index,reg_index,atom('R),CountOp),
+ Division : (reg_index,reg_index,reg_index,atom('R),boolean),
+ Shift : (reg_index,reg_index,reg_index,atom('R),ShiftType),
+ CRC : (reg_index,reg_index,reg_index,atom('D),boolean),
+ MultiplyAddSub : (reg_index,reg_index,reg_index,reg_index,atom('R),atom('D),boolean),
+ MultiplyAddSubLong : (reg_index,reg_index,reg_index,reg_index,atom('R),atom('D),boolean,boolean),
+ MultiplyHigh : (reg_index,reg_index,reg_index,reg_index,atom('R),atom('D),boolean),
+ LogicalShiftedRegister : (reg_index,reg_index,reg_index,atom('R),boolean,LogicalOp,ShiftType,range(0,63),boolean),
+}
+
+val execute : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}. ast('R,'D) -> unit effect {rreg,wreg,rmem,barr,eamem,wmv,exmem,escape}
+scattered function execute
+
+/* TSTART - dummy decoding */
+val decodeTMStart : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}. bits(5) -> option (ast('R,'D))
+function decodeTMStart (Rt) = {
+ t : reg_index = UInt_reg(Rt);
+ Some(TMStart(t));
+}
+
+/* transactional memory, not part of the official spec */
+function clause execute (TMStart(t)) = {
+ nesting : bits(8) = TxNestingLevel;
+
+ if nesting <_u TXIDR_EL0.DEPTH then {
+ TxNestingLevel = nesting + 1;
+ status : bits(64) = 0;
+ if nesting == 0 then
+ status = TMStartEffect; /* fake effect */
+ wX(t) = status;
+ } else {
+ status : bits(64) = 0;
+ status[10] = 1; /* set the NEST bit */
+ TMAbortEffect = status; /* fake effect */
+ }
+}
+
+/* external */ val TMCommitEffect : unit -> unit effect {barr}
+
+/* TCOMMIT - dummy decoding */
+val decodeTMCommit : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ unit -> option(ast('R,'D)) effect pure
+function decodeTMCommit () = {
+ Some(TMCommit);
+}
+
+/* transactional memory, not part of the official spec */
+function clause execute (TMCommit) = {
+ nesting : bits(8) = TxNestingLevel;
+
+ if nesting == 1 then
+ TMCommitEffect() /* fake effect */
+ else if nesting == 0 then
+ AArch64_UndefinedFault();
+
+ TxNestingLevel = nesting - 1;
+}
+
+/* TTEST - dummy decoding */
+val decodeTMTest : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ unit -> option(ast('R,'D)) effect pure
+function decodeTMTest () = {
+ Some(TMTest);
+}
+
+/* transactional memory, not part of the official spec */
+function clause execute (TMTest) = {
+ if TxNestingLevel > 0 then
+ wPSTATE_NZCV() = 0b0000
+ else
+ wPSTATE_NZCV() = 0b0100
+}
+
+/* TABORT - dummy decoding */
+val decodeTMAbort : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(6) -> option(ast('R,'D)) effect pure
+function decodeTMAbort ([R] @ (imm5 : bits(5))) = {
+ Some(TMAbort(R,imm5));
+}
+
+/* transactional memory, not part of the official spec */
+function clause execute (TMAbort(retry,reason)) = {
+ if TxNestingLevel > 0 then {
+ status : bits(64) = 0;
+ status[4..0] = reason; /* REASON */
+ status[8] = retry; /* RTRY */
+ status[9] = 1; /* ABRT */
+ TMAbortEffect = status; /* fake effect */
+ };
+}
+
+/* CBNZ */
+/* CBZ */
+val decodeCompareBranchImmediate : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeCompareBranchImmediate ([sf]@0b011010@[op]@(imm19:bits(19))@Rt) = {
+ t : reg_index = UInt_reg(Rt);
+ datasize : atom('R) = if sf == 1 then 64 else 32;
+ iszero : boolean = (op == 0);
+ offset : bits(64) = SignExtend(imm19@0b00);
+
+ Some(CompareAndBranch(t,datasize,iszero,offset));
+}
+
+function clause execute (CompareAndBranch(t,datasize,iszero,offset)) = {
+ operand1 : bits('R) = rX(t);
+ if IsZero(operand1) == iszero then
+ BranchTo(rPC() + offset, BranchType_JMP);
+}
+
+/* B.cond */
+val decodeConditionalBranchImmediate: forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeConditionalBranchImmediate (0b0101010@0b0@(imm19 : bits(19))@0b0@ _cond) =
+{
+ offset : bits(64) = SignExtend(imm19@0b00);
+ condition : bits(4) = _cond;
+
+ Some(BranchConditional(offset,condition));
+}
+
+function clause execute (BranchConditional(offset,condition)) = {
+ if ConditionHolds(condition) then
+ BranchTo(rPC() + offset, BranchType_JMP);
+}
+
+
+val decodeExceptionGeneration : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+scattered function decodeExceptionGeneration
+
+/* SVC */
+function clause decodeExceptionGeneration (0b11010100@0b000@(imm16 : bits(16))@0b000@0b01) = {
+ imm : bits(16) = imm16;
+ Some(GenerateExceptionEL1(imm))
+}
+
+function clause execute (GenerateExceptionEL1(imm)) = {
+ AArch64_CallSupervisor(imm);
+}
+
+/* HVC */
+function clause decodeExceptionGeneration (0b11010100@0b000@(imm16 : bits(16))@0b000@0b10) = {
+ imm : bits(16) = imm16;
+ Some(GenerateExceptionEL2(imm))
+}
+
+function clause execute (GenerateExceptionEL2(imm)) =
+{
+ if ~(HaveEL(EL2)) | PSTATE_EL == EL0 | (PSTATE_EL == EL1 & IsSecure()) then
+ UnallocatedEncoding();
+
+ hvc_enable : bit = if HaveEL(EL3) then SCR_EL3.HCE else NOT'(HCR_EL2.HCD);
+ if hvc_enable == 0 then
+ AArch64_UndefinedFault()
+ else
+ AArch64_CallHypervisor(imm);
+}
+
+/* SMC */
+function clause decodeExceptionGeneration (0b11010100@0b000@(imm16 : bits(16))@0b000@0b11) = {
+ imm : bits(16) = imm16;
+ Some(GenerateExceptionEL3(imm))
+}
+
+function clause execute (GenerateExceptionEL3(imm)) = {
+ if ~(HaveEL(EL3)) | PSTATE_EL == EL0 then
+ UnallocatedEncoding();
+
+ AArch64_CheckForSMCTrap(imm);
+
+ if SCR_EL3.SMD == 1 then
+ /* SMC disabled */
+ AArch64_UndefinedFault()
+ else
+ AArch64_CallSecureMonitor(imm);
+}
+
+/* BRK */
+function clause decodeExceptionGeneration (0b11010100@0b001@(imm16 : bits(16))@0b000@0b00) = {
+ comment : bits(16) = imm16;
+ Some(DebugBreakpoint(comment))
+}
+
+function clause execute (DebugBreakpoint(comment)) = {
+ AArch64_SoftwareBreakpoint(comment);
+}
+
+/* HLT */
+function clause decodeExceptionGeneration (0b11010100@0b010@(imm16 : bits(16))@0b000@0b00) = {
+ /* FIXME: we don't allow register reads in the decoding, but we probably should */
+ /* ARM: if EDSCR.HDE == 0 | ~(HaltingAllowed()) then AArch64_UndefinedFault(); /* ARM: UndefinedFault() */ */
+
+ Some(ExternalDebugBreakpoint);
+}
+
+
+function clause execute (ExternalDebugBreakpoint) = {
+ Halt(DebugHalt_HaltInstruction);
+}
+
+/* DCPS1 LL=0b01*/
+/* DCPS2 LL=0b10*/
+/* DCPS3 LL=0b11*/
+function clause decodeExceptionGeneration (0b11010100@0b101@(imm16 : bits(16))@0b000@(LL : bits(2))) = {
+ target_level : bits(2) = LL;
+ if LL == 0b00 then UnallocatedEncoding();
+ /* FIXME: we don't allow register reads in the decoding */
+ /* ARM: if ~(Halted()) then AArch64_UndefinedFault(); */
+
+ Some(DebugSwitchToExceptionLevel(target_level));
+}
+
+function clause execute (DebugSwitchToExceptionLevel(target_level)) = {
+ DCPSInstruction(target_level);
+}
+
+end decodeExceptionGeneration
+
+val decodeSystem : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+scattered function decodeSystem
+
+/* MSR (immediate) */
+function clause decodeSystem (0b1101010100@[0]@0b00@(op1 : bits(3))@0b0100@CRm@(op2 : bits(3))@0b11111) = {
+ /* FIXME: we don't allow register reads in the decoding */
+ /* ARM: CheckSystemAccess(0b00, op1, 0b0100, CRm, op2, 0b11111, 0); */
+
+ operand : bits(4) = CRm;
+ field : PSTATEField = 0; /* ARM: uninitialized */
+ match op1@op2 {
+ (0b000@0b101) => field = PSTATEField_SP,
+ (0b011@0b110) => field = PSTATEField_DAIFSet,
+ (0b011@0b111) => field = PSTATEField_DAIFClr,
+ _ => UnallocatedEncoding()
+ };
+
+ /* FIXME: we don't allow register reads in the decoding */
+ /* FIXME: it is not clear why this check is here. How is it different
+ than the CheckSystemAccess above? */
+ /*Check that an AArch64 MSR/MRS access to the DAIF flags is permitted*/
+ /* ARM: if op1 == 0b011 & PSTATE_EL == EL0 & SCTLR_EL1.UMA == 0 then
+ AArch64_SystemRegisterTrap(EL1, 0b00, op2, op1, 0b0100, 0b11111, CRm, 0);*/
+
+ Some(MoveSystemImmediate(operand,field));
+}
+
+function clause execute ( MoveSystemImmediate(operand,field) ) = {
+ match field {
+ PSTATEField_SP => PSTATE_SP = operand[0],
+ PSTATEField_DAIFSet => {
+ PSTATE_D = (PSTATE_D | operand[3]);
+ PSTATE_A = (PSTATE_A | operand[2]);
+ PSTATE_I = (PSTATE_I | operand[1]);
+ PSTATE_F = (PSTATE_F | operand[0]);
+ },
+ PSTATEField_DAIFClr => {
+ PSTATE_D = (PSTATE_D & NOT'(operand[3]));
+ PSTATE_A = (PSTATE_A & NOT'(operand[2]));
+ PSTATE_I = (PSTATE_I & NOT'(operand[1]));
+ PSTATE_F = (PSTATE_F & NOT'(operand[0]));
+ }
+ }
+}
+
+/* HINT */
+function clause decodeSystem (0b1101010100@[0]@0b00@0b011@0b0010@(CRm : bits(4))@(op2 : bits(3))@0b11111) = {
+ op : SystemHintOp = 0; /* ARM: uninitialized */
+
+ match CRm@op2 {
+ (0b0000@0b000) => op = SystemHintOp_NOP,
+ (0b0000@0b001) => op = SystemHintOp_YIELD,
+ (0b0000@0b010) => op = SystemHintOp_WFE,
+ (0b0000@0b011) => op = SystemHintOp_WFI,
+ (0b0000@0b100) => op = SystemHintOp_SEV,
+ (0b0000@0b101) => op = SystemHintOp_SEVL,
+ _ => op = SystemHintOp_NOP
+ };
+
+ Some(Hint(op));
+}
+
+function clause execute ( Hint(op) ) = {
+ match op {
+ SystemHintOp_YIELD =>
+ Hint_Yield(),
+
+ SystemHintOp_WFE => {
+ if EventRegistered() then
+ ClearEventRegister()
+ else {
+ if PSTATE_EL == EL0 then
+ AArch64_CheckForWFxTrap(EL1, true);
+ if HaveEL(EL2) & ~(IsSecure()) & (PSTATE_EL == EL0 | PSTATE_EL == EL1) then
+ AArch64_CheckForWFxTrap(EL2, true);
+ if HaveEL(EL3) & PSTATE_EL != EL3 then
+ AArch64_CheckForWFxTrap(EL3, true);
+ WaitForEvent();
+ }
+ },
+
+ SystemHintOp_WFI => {
+ if ~(InterruptPending()) then {
+ if PSTATE_EL == EL0 then
+ AArch64_CheckForWFxTrap(EL1, false);
+ if HaveEL(EL2) & ~(IsSecure()) & (PSTATE_EL == EL0 | PSTATE_EL == EL1) then
+ AArch64_CheckForWFxTrap(EL2, false);
+ if HaveEL(EL3) & PSTATE_EL != EL3 then
+ AArch64_CheckForWFxTrap(EL3, false);
+ WaitForInterrupt();
+ };
+ },
+
+ SystemHintOp_SEV =>
+ SendEvent(),
+
+ SystemHintOp_SEVL =>
+ EventRegisterSet(),
+
+ _ => () /* do nothing */
+ }
+}
+
+/* CLREX */
+function clause decodeSystem (0b1101010100@[0]@0b00@0b011@0b0011@(CRm : bits(4))@0b010@0b11111) = {
+ /* ARM: // CRm field is ignored */
+ imm : uinteger = CRm; /* we need CRm for pretty printing */
+ Some(ClearExclusiveMonitor(imm));
+}
+
+function clause execute (ClearExclusiveMonitor(imm)) = {
+ ClearExclusiveLocal(ProcessorID());
+}
+
+/* DMB opc=0b01*/
+/* DSB opc=0b00*/
+/* ISB opc=0b10*/
+function clause decodeSystem (0b1101010100@[0]@0b00@0b011@0b0011@(CRm : bits(4))@[1]@opc@0b11111) = {
+ /* TODO: according to ARM, HCR_EL2.BSU affect the domain, but the pseudo
+ code doesn't show any signs of that */
+ op : MemBarrierOp = 0; /* ARM: uninitialized */
+ domain : MBReqDomain = 0; /* ARM: uninitialized */
+ types : MBReqTypes = 0; /* ARM: uninitialized */
+
+ match opc {
+ 0b00 => op = MemBarrierOp_DSB,
+ 0b01 => op = MemBarrierOp_DMB,
+ 0b10 => op = MemBarrierOp_ISB,
+ _ => UnallocatedEncoding()
+ };
+
+ match CRm[3..2] {
+ 0b00 => domain = MBReqDomain_OuterShareable,
+ 0b01 => domain = MBReqDomain_Nonshareable,
+ 0b10 => domain = MBReqDomain_InnerShareable,
+ 0b11 => domain = MBReqDomain_FullSystem
+ };
+
+ match CRm[1..0] {
+ 0b01 => types = MBReqTypes_Reads,
+ 0b10 => types = MBReqTypes_Writes,
+ 0b11 => types = MBReqTypes_All,
+ _ => {
+ types = MBReqTypes_All;
+ domain = MBReqDomain_FullSystem;
+ }
+ };
+
+ Some(Barrier(op,domain,types));
+}
+
+function clause execute ( Barrier(op,domain,types) ) = {
+ match op {
+ MemBarrierOp_DSB =>
+ DataSynchronizationBarrier(domain, types),
+ MemBarrierOp_DMB =>
+ DataMemoryBarrier(domain, types),
+ MemBarrierOp_ISB =>
+ InstructionSynchronizationBarrier()
+ };
+}
+
+/* SYS L=0b0 */
+/* SYSL L=0b1 */
+function clause decodeSystem (0b1101010100@[L]@0b01@(op1 : bits(3))@(CRn : bits(4))@(CRm : bits(4))@(op2 : bits(3))@Rt) = {
+ /* FIXME: we don't allow register reads in the decoding */
+ /* ARM: CheckSystemAccess(0b01, op1, CRn, CRm, op2, Rt, L);*/
+
+ t : reg_index = UInt_reg(Rt);
+
+ sys_op0 : uinteger = 1;
+ sys_op1 : uinteger = UInt(op1);
+ sys_op2 : uinteger = UInt(op2);
+ sys_crn : uinteger = UInt(CRn);
+ sys_crm : uinteger = UInt(CRm);
+ has_result : boolean = (L == 1);
+
+ Some(System(t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result));
+}
+
+function clause execute ( System(t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result) ) =
+{
+ if has_result then
+ wX(t) = SysOp_R(sys_op0, sys_op1, sys_crn, sys_crm, sys_op2)
+ else
+ SysOp_W(sys_op0, sys_op1, sys_crn, sys_crm, sys_op2, rX(t));
+}
+
+/* MRS L=1 */
+/* MSR (register) L=0 */
+function clause decodeSystem (0b1101010100@[L]@[1]@[o0]@(op1 : bits(3))@(CRn : bits(4))@(CRm : bits(4))@(op2 : bits(3))@Rt) = {
+ /* FIXME: we don't allow register reads in the decoding */
+ /* ARM: CheckSystemAccess([0b1]:[o0], op1, CRn, CRm, op2, Rt, L); */
+
+ t : reg_index = UInt_reg(Rt);
+
+ sys_op0 : uinteger = 2 + UInt([o0]);
+ sys_op1 : uinteger = UInt(op1);
+ sys_op2 : uinteger = UInt(op2);
+ sys_crn : uinteger = UInt(CRn);
+ sys_crm : uinteger = UInt(CRm);
+ read : boolean = (L == 1);
+
+ Some(MoveSystemRegister(t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read));
+}
+
+function clause execute ( MoveSystemRegister(t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read) ) = {
+ if read then
+ wX(t) = System_Get(sys_op0, sys_op1, sys_crn, sys_crm, sys_op2)
+ else
+ System_Put(sys_op0, sys_op1, sys_crn, sys_crm, sys_op2, rX(t));
+}
+
+end decodeSystem
+
+val decodeImplementationDefined : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+scattered function decodeImplementationDefined
+
+/* instructions to signal to Sail that test begins/ends */
+function clause decodeImplementationDefined (0b1101010100@[0]@0b01@0b011@[1]@[_]@0b11@0b0000@0b000@0b0000@[isEnd]) = {
+ Some(ImplementationDefinedTestBeginEnd(isEnd));
+}
+
+function clause execute ( ImplementationDefinedTestBeginEnd(isEnd) ) = {
+ if isEnd then
+ info("test ends")
+ else
+ info("test begins");
+}
+
+/* instructions to signal ppcmem to stop fetching */
+function clause decodeImplementationDefined (0b1101010100@[0]@0b01@0b011@[1]@[_]@0b11@0b0000@0b000@0b00010) = {
+ Some(ImplementationDefinedStopFetching)
+}
+
+function clause execute ( ImplementationDefinedStopFetching ) = {
+ info("stop fetching instructions");
+}
+
+/* instructions to signal ppcmem to start a thread */
+function clause decodeImplementationDefined (0b1101010100@[0]@0b01@0b011@[1]@[_]@0b11@0b0000@0b000@0b00011) = {
+ Some(ImplementationDefinedThreadStart)
+}
+
+function clause execute ( ImplementationDefinedThreadStart ) = {
+ info("thread start");
+}
+
+end decodeImplementationDefined
+
+/* TBNZ */
+/* TBZ */
+val decodeTestBranchImmediate : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+function decodeTestBranchImmediate ([b5]@0b011011@[op]@(b40 : bits(5))@(imm14 : bits(14))@Rt) = {
+ t : reg_index = UInt_reg(Rt);
+
+ datasize : atom('R) = if b5 == 1 then 64 else 32;
+ bit_pos : uinteger = UInt([b5]:b40);
+ bit_val : bit = op;
+ offset : bits(64) = SignExtend(imm14@0b00);
+
+ Some(TestBitAndBranch(t,datasize,bit_pos,bit_val,offset));
+}
+
+function clause execute ( TestBitAndBranch(t,datasize,bit_pos,bit_val,offset) ) = {
+ operand : bits('R) = rX(t);
+
+ if operand[bit_pos] == bit_val then
+ BranchTo(rPC() + offset, BranchType_JMP);
+}
+
+/* B */
+/* BL */
+val decodeUnconditionalBranchImmediate : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+function decodeUnconditionalBranchImmediate ([op]@0b00101@(imm26 : bits(26))) = {
+ branch_type : BranchType = if op == 1 then BranchType_CALL else BranchType_JMP;
+ offset : bits(64) = SignExtend(imm26@0b00);
+
+ Some(BranchImmediate(branch_type,offset));
+}
+
+function clause execute (BranchImmediate(branch_type,offset)) = {
+ if branch_type == BranchType_CALL then wX(30) = rPC() + 4;
+
+ BranchTo(rPC() + offset, branch_type);
+}
+
+
+val decodeUnconditionalBranchRegister : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+scattered function decodeUnconditionalBranchRegister
+
+/* BLR */
+/* BR */
+/* RET */
+function clause decodeUnconditionalBranchRegister (0b1101011@0b00@op@0b11111@0b000000@Rn@0b00000) = {
+ n : reg_index = UInt_reg(Rn);
+ branch_type : BranchType = 0; /* ARM: uninitialized */
+
+ match op {
+ 0b00 => branch_type = BranchType_JMP,
+ 0b01 => branch_type = BranchType_CALL,
+ 0b10 => branch_type = BranchType_RET,
+ _ => UnallocatedEncoding()
+ };
+
+ Some(BranchRegister(n,branch_type));
+}
+
+function clause execute (BranchRegister(n,branch_type)) = {
+ target : bits(64) = rX(n);
+
+ if branch_type == BranchType_CALL then wX(30) = rPC() + 4;
+ BranchTo(target, branch_type);
+}
+
+/* ERET */
+function clause decodeUnconditionalBranchRegister (0b1101011@0b0100@0b11111@0b000000@0b11111@0b00000) = {
+ /* FIXME: we don't allow register reads in the decoding */
+ /* ARM: if PSTATE_EL == EL0 then UnallocatedEncoding(); */
+
+ Some(ExceptionReturn);
+}
+
+function clause execute (ExceptionReturn) = {
+ AArch64_ExceptionReturn(rELR'(), rSPSR());
+}
+
+/* DRPS */
+function clause decodeUnconditionalBranchRegister (0b1101011@0b0101@0b11111@0b000000@0b11111@0b00000) = {
+ /* FIXME: we don't allow register reads in the decoding */
+ /* ARM: if ~(Halted()) | PSTATE_EL == EL0 then UnallocatedEncoding(); */
+
+ Some(DebugRestorePState);
+}
+
+function clause execute (DebugRestorePState) = {
+ DRPSInstruction();
+}
+
+end decodeUnconditionalBranchRegister
+
+val decodeAdvSIMDLoadStoreMultiStruct : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+function decodeAdvSIMDLoadStoreMultiStruct (machineCode) = {
+ not_implemented("decodeAdvSIMDLoadStoreMultiStruct");
+ Some(Unallocated);
+}
+
+val decodeAdvSIMDLoadStoreMultiStructPostIndexed : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+function decodeAdvSIMDLoadStoreMultiStructPostIndexed (machineCode) = {
+ not_implemented("decodeAdvSIMDLoadStoreMultiStructPostIndexed");
+ Some(Unallocated);
+}
+
+val decodeAdvSIMDLoadStoreSingleStruct : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+function decodeAdvSIMDLoadStoreSingleStruct (machineCode) = {
+ not_implemented("decodeAdvSIMDLoadStoreSingleStruct");
+ Some(Unallocated);
+}
+
+val decodeAdvSIMDLoadStoreSingleStructPostIndexed : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+function decodeAdvSIMDLoadStoreSingleStructPostIndexed (machineCode) = {
+ not_implemented("decodeAdvSIMDLoadStoreSingleStructPostIndexed");
+ Some(Unallocated);
+}
+
+/* LDR (literal) opc=0b0_ */
+/* LDRSW (literal) opc=0b10 */
+/* PRFM (literal) opc=0b11 */
+val decodeLoadRegisterLiteral : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D))
+function decodeLoadRegisterLiteral ((opc : bits(2))@0b011@[0]@0b00@(imm19 : bits(19))@Rt) = {
+ t : reg_index = UInt_reg(Rt);
+ memop : MemOp = MemOp_LOAD;
+ _signed : boolean = false;
+ size : uinteger = 0; /* ARM: uninitialized */
+ offset : bits(64) = 4; /* ARM: uninitialized */
+
+ match opc {
+ 0b00 =>
+ size = 4, /* LDR (literal) 32 */
+ 0b01 =>
+ size = 8, /* LDR (literal) 64 */
+ 0b10 => { /* LDRSW (literal) */
+ size = 4;
+ _signed = true;
+ },
+ 0b11 => /* PRFM (literal) */
+ memop = MemOp_PREFETCH
+ };
+
+ offset = SignExtend(imm19@0b00);
+
+ datasize : atom('D) = size*8; /* not in ARM ARM */
+
+ Some(LoadLiteral(t,memop,_signed,size,offset,datasize));
+}
+
+function clause execute ( LoadLiteral(t,memop,_signed,size,offset,(datasize : atom('D))) ) = {
+ address : bits(64) = rPC() + offset;
+ data : bits('D) = 0; /* ARM: uninitialized */
+
+ match memop {
+ MemOp_LOAD => {
+ data = flush_read_buffer(
+ rMem(empty_read_buffer, address, size, AccType_NORMAL),
+ size
+ );
+ if _signed then
+ wX(t) = SignExtend(data) : bits(64)
+ else
+ wX(t) = data;
+ },
+ MemOp_PREFETCH =>
+ Prefetch(address,t : bits(5))
+ };
+}
+
+/* LDAR size=0b1_,o2=1,L=1,o1=0,o0=1,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* LDARB size=0b00,o2=1,L=1,o1=0,o0=1,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* LDARH size=0b01,o2=1,L=1,o1=0,o0=1,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* LDAXP size=0b1_,o2=0,L=1,o1=1,o0=1,rs=(1)(1)(1)(1)(1) */
+/* LDAXR size=0b1_,o2=0,L=1,o1=0,o0=1,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* LDAXRB size=0b00,o2=0,L=1,o1=0,o0=1,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* LDAXRH size=0b01,o2=0,L=1,o1=0,o0=1,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* LDXP size=0b1_,o2=0,L=1,o1=1,o0=0,rs=(1)(1)(1)(1)(1) */
+/* LDXR size=0b1_,o2=0,L=1,o1=0,o0=0,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* LDXRB size=0b00,o2=0,L=1,o1=0,o0=0,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* LDXRH size=0b01,o2=0,L=1,o1=0,o0=0,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* STLR size=0b1_,o2=1,L=0,o1=0,o0=1,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* STLRB size=0b00,o2=1,L=0,o1=0,o0=1,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* STLRH size=0b01,o2=1,L=0,o1=0,o0=1,rs=(1)(1)(1)(1)(1),rt2=(1)(1)(1)(1)(1) */
+/* STLXP size=0b1_,o2=0,L=0,o1=1,o0=1 */
+/* STLXR size=0b1_,o2=0,L=0,o1=0,o0=1, rt2=(1)(1)(1)(1)(1) */
+/* STLXRB size=0b00,o2=0,L=0,o1=0,o0=1, rt2=(1)(1)(1)(1)(1) */
+/* STLXRH size=0b01,o2=0,L=0,o1=0,o0=1, rt2=(1)(1)(1)(1)(1) */
+/* STXP size=0b1_,o2=0,L=0,o1=1,o0=0 */
+/* STXR size=0b1_,o2=0,L=0,o1=0,o0=0, rt2=(1)(1)(1)(1)(1) */
+/* STXRB size=0b00,o2=0,L=0,o1=0,o0=0, rt2=(1)(1)(1)(1)(1) */
+/* STXRH size=0b01,o2=0,L=0,o1=0,o0=0, rt2=(1)(1)(1)(1)(1) */
+val decodeLoadStoreExclusive : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadStoreExclusive ((size : bits(2))@0b001000@[o2]@[L]@[o1]@Rs@[o0]@Rt2@Rn@Rt) = {
+ n : reg_index = UInt_reg(Rn);
+ t : reg_index = UInt_reg(Rt);
+ t2 : reg_index = UInt_reg(Rt2); /* ignored by load/store single register */
+ s : reg_index= UInt_reg(Rs); /* ignored by all loads and store-release */
+
+ if ([o2,o1,o0]) == 0b100 | ([o2,o1] == 0b11) then UnallocatedEncoding();
+ if o1 == 1 & size[1] == 0 then UnallocatedEncoding();
+
+ acctype : AccType = if o0 == 1 then AccType_ORDERED else AccType_ATOMIC;
+ excl : boolean = (o2 == 0);
+ pair : boolean = (o1 == 1);
+ memop : MemOp = if L == 1 then MemOp_LOAD else MemOp_STORE;
+ elsize = lsl(8, UInt(size));
+ regsize : atom('R) = if elsize == 64 then 64 else 32;
+ datasize : atom('D) = if pair then elsize * 2 else elsize;
+
+ /* lemma: pair --> datasize = 2*regsize */
+ /* follows from "if o1 == 1 & size[1] == 0 then UnallocatedEncoding();" */
+
+ Some(LoadStoreAcqExc(n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize));
+}
+
+function clause execute ( LoadStoreAcqExc(n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,(datasize :atom('D)) )) = {
+ address : bits(64) = 0; /* ARM: uninitialized */
+ data : bits('D) = 0; /* ARM: uninitialized */
+ /*constant*/ dbytes : uinteger = quot (datasize,8);
+ rt_unknown : boolean = false;
+ rn_unknown : boolean = false;
+
+ if memop == MemOp_LOAD & pair & t == t2 then {
+ UnallocatedEncoding(); /* ARM:
+ (Constraint) c = ConstrainUnpredictable();
+ assert( vIN(c, [Constraint_UNKNOWN, Constraint_UNDEF, Constraint_NOP]) );
+ switch c {
+ Constraint_UNKNOWN => rt_unknown =: true /* result is UNKNOWN */
+ Constraint_UNDEF => UnallocatedEncoding()
+ Constraint_NOP => EndOfInstruction()
+ };*/
+ };
+
+ if memop == MemOp_STORE & excl then {
+ if s == t | (pair & s == t2) then {
+ UnallocatedEncoding(); /* ARM:
+ (Constraint) c = ConstrainUnpredictable();
+ assert( vIN(c, [Constraint_UNKNOWN, Constraint_NONE, Constraint_UNDEF, Constraint_NOP]) );
+ switch c {
+ Constraint_UNKNOWN => rt_unknown = true /* store UNKNOWN value */
+ Constraint_NONE => rt_unknown = false /* store original value */
+ Constraint_UNDEF => UnallocatedEncoding()
+ Constraint_NOP => EndOfInstruction()
+ };*/
+ };
+ if s == n & n != 31 then {
+ UnallocatedEncoding(); /* ARM:
+ (Constraint) c = ConstrainUnpredictable();
+ assert( vIN(c, [Constraint_UNKNOWN, Constraint_NONE, Constraint_UNDEF, Constraint_NOP]) );
+ switch c {
+ Constraint_UNKNOWN => rn_unknown = true /* address is UNKNOWN */
+ Constraint_NONE => rn_unknown = false /* address is original base */
+ Constraint_UNDEF => UnallocatedEncoding()
+ Constraint_NOP => EndOfInstruction()
+ };*/
+ };
+ };
+
+ /* this is a hack to allow the result of store-exclusive to be observed
+ before anything else */
+ status : bit = 0;
+ if memop == MemOp_STORE & excl then {
+ /*(bit)*/ status = if speculate_exclusive_success() then 0 else 1;
+ wX(s) = ZeroExtend([status]) : bits(32);
+
+ /* should be:
+ if status == 1 then return ();
+ */
+ };
+ if status == 1 then () else {
+
+ if n == 31 then {
+ CheckSPAlignment();
+ address = rSP();
+ } else if rn_unknown then
+ address = UNKNOWN : bits(64)
+ else
+ address = rX(n);
+
+ match memop {
+ MemOp_STORE => {
+ /* anounce the address */
+ wMem_Addr(address, dbytes, acctype, excl);
+
+ if rt_unknown then
+ data = UNKNOWN : bits('D)
+ else if pair then {
+ assert( excl, None );
+ el1 : bits('R) = rX(t); /* ARM: bits(datasize / 2) see lemma in the decoding */
+ el2 : bits('R) = rX(t2); /* ARM: bits(datasize / 2) see lemma in the decoding */
+ data = if BigEndian() then el1:el2 else el2:el1;
+ } else
+ data : bits('D) = rX(t);
+
+ if excl then {
+ /* store {release} exclusive register|pair (atomic) */
+ status : bit = 1;
+ /* Check whether the Exclusive Monitors are set to include the */
+ /* physical memory locations corresponding to virtual address */
+ /* range [address, address+dbytes-1]. */
+ if AArch64_ExclusiveMonitorsPass(address, dbytes) then {
+ /* This atomic write will be rejected if it does not refer */
+ /* to the same physical locations after address translation. */
+ /* ARM: wMem(address, dbytes, acctype) = data;
+ status = ExclusiveMonitorsStatus(); */
+ status = flush_write_buffer_exclusive(
+ wMem_exclusive(empty_write_buffer, address, dbytes, acctype, data)
+ );
+ };
+ /* ARM: the following code was moved up, see note there
+ wX(s) = (bits(32)) (ZeroExtend([status]));
+ */
+ } else {
+ /* store release register (atomic) */
+ flush_write_buffer(
+ wMem(empty_write_buffer, address, dbytes, acctype, data)
+ );
+ };
+ },
+
+ MemOp_LOAD => {
+ if excl then {
+ /* Tell the Exclusive Monitors to record a sequence of one or more atomic */
+ /* memory reads from virtual address range [address, address+dbytes-1]. */
+ /* The Exclusive Monitor will only be set if all the reads are from the */
+ /* same dbytes-aligned physical address, to allow for the possibility of */
+ /* an atomicity break if the translation is changed between reads. */
+ AArch64_SetExclusiveMonitors(address, dbytes);
+ };
+
+ if pair then {
+ /* load exclusive pair */
+ assert( excl, None );
+ if rt_unknown then
+ /* ConstrainedUNPREDICTABLE case */
+ wX(t) = UNKNOWN : bits('D)
+ else if elsize == 32 then {
+ /* 32-bit load exclusive pair (atomic) */
+ data = flush_read_buffer(
+ rMem_exclusive(empty_read_buffer, address, dbytes, acctype),
+ dbytes
+ );
+ if BigEndian() then {
+ wX(t) = data[(datasize - 1)..elsize];
+ wX(t2) = data[(elsize - 1)..0];
+ } else {
+ wX(t) = data[(elsize - 1)..0];
+ wX(t2) = data[(datasize - 1)..elsize];
+ };
+ } else { /* elsize == 64 */
+ /* 64-bit load exclusive pair (not atomic), */
+ /* but must be 128-bit aligned */
+ if address != Align(address, dbytes) then {
+ iswrite : boolean = false;
+ secondstage : boolean = false;
+ AArch64_Abort(address, AArch64_AlignmentFault(acctype, iswrite, secondstage));
+ };
+ read_buffer : read_buffer_type = rMem_exclusive(empty_read_buffer, address + 0, 8, acctype);
+ read_buffer = rMem_exclusive(read_buffer, address + 8, 8, acctype);
+ value : bits(128) = flush_read_buffer(read_buffer, 8*2);
+ wX(t) = value[63..0];
+ wX(t2) = value[127..64];
+ };
+ } else {
+ /* load {acquire} {exclusive} single register */
+ data = flush_read_buffer(
+ rMem'(empty_read_buffer, address, dbytes, acctype, excl),
+ dbytes
+ );
+ wX(t) = ZeroExtend(data) : bits('R);
+ };
+ }
+ };
+ };
+}
+
+/* LDNP */
+/* STNP */
+val decodeLoadStoreNoAllocatePairOffset : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadStoreNoAllocatePairOffset ((opc : bits(2))@0b101@[0]@0b000@[L]@(imm7 : bits(7))@Rt2@Rn@Rt) = {
+ wback : boolean = false;
+ postindex : boolean = false;
+
+ /* Shared decode */
+
+ n : reg_index = UInt_reg(Rn);
+ t : reg_index = UInt_reg(Rt);
+ t2 : reg_index = UInt_reg(Rt2);
+ acctype : AccType = AccType_STREAM;
+ memop : MemOp = if L == 1 then MemOp_LOAD else MemOp_STORE;
+ if opc[0] == 1 then UnallocatedEncoding();
+ scale : uinteger = 2 + UInt([opc[1]]);
+ datasize : atom('D) = lsl(8, scale);
+ offset : bits(64) = LSL(SignExtend(imm7), scale);
+
+ Some(LoadStorePairNonTemp(wback,postindex,n,t,t2,acctype,memop,scale,datasize,offset));
+}
+
+function clause execute ( LoadStorePairNonTemp(wback,postindex,n,t,t2,acctype,memop,scale,(datasize : atom('D)),offset) ) = {
+ address : bits(64) = 0; /* ARM: uninitialized */
+ data1 : bits('D) = 0; /* ARM: uninitialized */
+ data2 : bits('D) = 0; /* ARM: uninitialized */
+ /*constant*/ dbytes : uinteger = quot(datasize,8);
+ rt_unknown : boolean = false;
+
+ if memop == MemOp_LOAD & t == t2 then {
+ UnallocatedEncoding(); /* ARM:
+ Constraint c = ConstrainUnpredictable();
+ assert c IN {Constraint_UNKNOWN, Constraint_UNDEF, Constraint_NOP};
+
+ case c of
+ when Constraint_UNKNOWN rt_unknown = TRUE; // result is UNKNOWN
+ when Constraint_UNDEF UnallocatedEncoding();
+ when Constraint_NOP EndOfInstruction();
+ };*/
+ };
+
+ if n == 31 then {
+ CheckSPAlignment();
+ address = rSP();
+ } else
+ address = rX(n);
+
+ if ~(postindex) then
+ address = address + offset;
+
+ if memop == MemOp_STORE then
+ /* anounce the address */
+ wMem_Addr(address, dbytes * 2, acctype, false);
+
+ /* this is a hack to allow the address write back to be observed
+ before the memory access */
+ if wback then {
+ let address' = (if ~(postindex) then address else (address + offset)) : bits(64) in
+ if n == 31 then
+ wSP() = address'
+ else
+ wX(n) = address'
+ };
+
+ match memop {
+ MemOp_STORE => {
+ if rt_unknown & t == n then
+ data1 = UNKNOWN : bits('D)
+ else
+ data1 = rX(t);
+ if rt_unknown & t2 == n then
+ data2 = UNKNOWN : bits('D)
+ else
+ data2 = rX(t2);
+
+ write_buffer : write_buffer_type = wMem(empty_write_buffer, address + 0, dbytes, acctype, data1);
+ write_buffer = wMem(write_buffer, address + dbytes, dbytes, acctype, data2);
+ flush_write_buffer(write_buffer);
+ },
+
+ MemOp_LOAD => {
+ read_buffer : read_buffer_type = rMem(empty_read_buffer, address + 0 , dbytes, acctype);
+ read_buffer = rMem(read_buffer, address + dbytes, dbytes, acctype);
+ read_data : bits('D*2) = flush_read_buffer(read_buffer, dbytes*2);
+ data1 = read_data[(datasize - 1)..0];
+ data2 = read_data[((datasize * 2) - 1)..datasize];
+
+ if rt_unknown then {
+ data1 = UNKNOWN : bits('D);
+ data2 = UNKNOWN : bits('D);
+ };
+ wX(t) = data1;
+ wX(t2) = data2;
+ }
+ };
+
+/* ARM: the following code was moved up, see note there
+ if wback then {
+ if postindex then
+ address = address + offset;
+ if n == 31 then
+ wSP() = address
+ else
+ wX(n) = address;
+ };
+*/
+}
+
+function sharedDecodeLoadImmediate forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ (opc : bits(2),size : bits(2),Rn,Rt,wback,postindex,scale : uinteger,offset,acctype,prefetchAllowed : bool) -> option(ast('R,'D))
+ = {
+ n : reg_index = UInt_reg(Rn);
+ t : reg_index = UInt_reg(Rt);
+ /* ARM: inorder to unify the decoding acctype was moved out.
+ AccType_UNPRIV for LDT* / STT* and AccType_NORMAL for the rest.
+ acctype : AccType = AccType_NORMAL/AccType_UNPRIV; */
+ memop : MemOp = 0; /* ARM: uninitialized */
+ _signed : boolean = false; /* ARM: uninitialized */
+ regsize : atom('R) = 64; /* ARM: uninitialized */
+
+ if opc[1] == 0 then {
+ /* store or zero-extending load */
+ memop = if opc[0] == 1 then MemOp_LOAD else MemOp_STORE;
+ regsize = if size == 0b11 then 64 else 32;
+ _signed = false;
+ } else {
+ if size == 0b11 then {
+ /* ARM: we use the following if/else to unify the decoding */
+ if prefetchAllowed then {
+ memop = MemOp_PREFETCH;
+ if opc[0] == 1 then UnallocatedEncoding();
+ } else {
+ /* no unprivileged prefetch */
+ UnallocatedEncoding();
+ };
+ } else {
+ /* sign-extending load */
+ memop = MemOp_LOAD;
+ if size == 0b10 & opc[0] == 1 then UnallocatedEncoding();
+ regsize = if opc[0] == 1 then 32 else 64;
+ _signed = true;
+ };
+ };
+
+ datasize : atom('D) = lsl(8, scale);
+
+ Some(LoadImmediate(n,t,acctype,memop,_signed,wback,postindex,offset,regsize,datasize));
+}
+
+/* LDR/STR (immediate) post-index */
+/* LDRB/STRB (immediate) post-index */
+/* LDRH/STRH (immediate) post-index */
+/* LDRSB (immediate) post-index */
+/* LDRSH (immediate) post-index */
+/* LDRSW (immediate) post-index */
+val decodeLoadStoreRegisterImmediatePostIndexed : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadStoreRegisterImmediatePostIndexed (size@0b111@[0]@0b00@opc@[0]@(imm9 : bits(9))@0b01@Rn@Rt) = {
+ wback : boolean = true;
+ postindex : boolean = true;
+ scale : uinteger = UInt(size);
+ offset : bits(64) = SignExtend(imm9);
+
+ sharedDecodeLoadImmediate(opc,size,Rn,Rt,wback,postindex,scale,offset,AccType_NORMAL,false);
+}
+
+function clause execute ( LoadImmediate(n,t,acctype,memop,_signed,wback,postindex,offset,regsize,datasize : atom('D)) ) = {
+ address : bits(64) = 0; /* ARM: uninitialized */
+ data : bits('D) = 0; /* ARM: uninitialized */
+ wb_unknown : boolean = false;
+ rt_unknown : boolean = false;
+
+ if memop == MemOp_LOAD & wback & n == t & n != 31 then {
+ UnallocatedEncoding(); /* ARM:
+ Constraint c = ConstrainUnpredictable();
+ assert( c vIN [Constraint_WBSUPPRESS, Constraint_UNKNOWN, Constraint_UNDEF, Constraint_NOP] );
+ switch c {
+ Constraint_WBSUPPRESS => wback = false /* writeback is suppressed */
+ Constraint_UNKNOWN => wb_unknown = true /* writeback is UNKNOWN */
+ Constraint_UNDEF => UnallocatedEncoding()
+ Constraint_NOP => EndOfInstruction()
+ };*/
+ };
+
+ if memop == MemOp_STORE & wback & n == t & n != 31 then {
+ UnallocatedEncoding(); /* ARM:
+ Constraint c = ConstrainUnpredictable();
+ assert( c vIN [Constraint_NONE, Constraint_UNKNOWN, Constraint_UNDEF, Constraint_NOP] );
+ switch c {
+ Constraint_NONE => rt_unknown = false (* value stored is original value *)
+ Constraint_UNKNOWN => rt_unknown = true (* value stored is UNKNOWN *)
+ Constraint_UNDEF => UnallocatedEncoding()
+ Constraint_NOP => EndOfInstruction()
+ };*/
+ };
+
+ if n == 31 then {
+ if memop != MemOp_PREFETCH then CheckSPAlignment();
+ address = rSP();
+ } else
+ address = rX(n);
+
+ if ~(postindex) then
+ address = address + offset;
+
+ if memop == MemOp_STORE then
+ /* anounce the address */
+ wMem_Addr(address, quot (datasize,8), acctype, false);
+
+ /* this is a hack to allow the address write back to be observed
+ before the memory access */
+ if wback then {
+ let address' = (if ~(postindex) then address else (address + offset)) : bits(64) in
+ if n == 31 then
+ wSP() = address'
+ else
+ wX(n) = address'
+ };
+
+ match memop {
+ MemOp_STORE => {
+ if rt_unknown then
+ data = UNKNOWN : bits('D)
+ else
+ data = rX(t);
+
+ flush_write_buffer(
+ wMem(empty_write_buffer, address, quot(datasize,8), acctype, data)
+ );
+ },
+
+ MemOp_LOAD => {
+ data = flush_read_buffer(
+ rMem(empty_read_buffer, address, quot(datasize,8), acctype),
+ quot(datasize, 8)
+ );
+ if _signed then
+ wX(t) = SignExtend(data) : bits('R) /* ARM: regsize */
+ else
+ wX(t) = ZeroExtend(data) : bits('R); /* ARM: regsize */
+ },
+
+ MemOp_PREFETCH =>
+ Prefetch(address,t : bits(5))
+ };
+
+/* ARM: the following code was moved up, see note there
+ if wback then {
+ if wb_unknown then
+ address = (bits(64)) UNKNOWN
+ else if postindex then
+ address = address + offset;
+ if n == 31 then
+ wSP() = address
+ else
+ wX(n) = address;
+ };
+*/
+}
+
+/* LDR/STR (immediate) pre-index */
+/* LDRB/STRB (immediate) pre-index */
+/* LDRH/STRH (immediate) pre-index */
+/* LDRSB (immediate) pre-index */
+/* LDRSH (immediate) pre-index */
+/* LDRSW (immediate) pre-index */
+val decodeLoadStoreRegisterImmediatePraeIndexed : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadStoreRegisterImmediatePreIndexed (size@0b111@[0]@0b00@opc@[0]@(imm9 : bits(9))@0b11@Rn@Rt) = {
+ wback : boolean = true;
+ postindex : boolean = false;
+ scale : uinteger = UInt(size);
+ offset : bits(64) = SignExtend(imm9);
+
+ sharedDecodeLoadImmediate(opc,size,Rn,Rt,wback,postindex,scale,offset,AccType_NORMAL,false);
+}
+
+val sharedDecodeLoadRegister : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D))
+function sharedDecodeLoadRegister(Rn,Rt,Rm,opc : bits(2),size : bits(2),wback,postindex,scale : uinteger,extend_type,shift) = {
+ n : reg_index = UInt_reg(Rn);
+ t : reg_index = UInt_reg(Rt);
+ m : reg_index = UInt_reg(Rm);
+ acctype : AccType = AccType_NORMAL;
+ memop : MemOp = 0; /* ARM: uninitialized */
+ _signed : boolean = 0; /* ARM: uninitialized */
+ regsize : atom('R) = 64; /* ARM: uninitialized */
+
+ if opc[1] == 0 then {
+ /* store or zero-extending load */
+ memop = if opc[0] == 1 then MemOp_LOAD else MemOp_STORE;
+ regsize = if size == 0b11 then 64 else 32;
+ _signed = false;
+ } else {
+ if size == 0b11 then {
+ memop = MemOp_PREFETCH;
+ if opc[0] == 1 then UnallocatedEncoding();
+ } else {
+ /* sign-extending load */
+ memop = MemOp_LOAD;
+ if size == 0b10 & opc[0] == 1 then UnallocatedEncoding();
+ regsize = if opc[0] == 1 then 32 else 64;
+ _signed = true;
+ };
+ };
+
+ datasize : atom('D) = lsl(8, scale);
+
+ Some(LoadRegister(n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize));
+}
+
+/* LDR/STR (register) */
+/* LDRB/STRB (register) */
+/* LDRH/STRH (register) */
+/* LDRSB (register) */
+/* LDRSH (register) */
+/* LDRSW (register) */
+/* PRFM (register) */
+
+val decodeLoadStoreRegisterRegisterOffset : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D))
+function decodeLoadStoreRegisterRegisterOffset (size@0b111@[0]@0b00@opc@[1]@Rm@option_v@[S]@0b10@Rn@Rt) = {
+ wback : boolean = false;
+ postindex : boolean = false;
+ scale : uinteger = UInt(size);
+ if option_v[1] == 0 then UnallocatedEncoding(); /* sub-word index */
+ extend_type : ExtendType = DecodeRegExtend(option_v);
+ shift : uinteger = if S == 1 then scale else 0;
+
+ sharedDecodeLoadRegister(Rn,Rt,Rm,opc,size,wback,postindex,scale,extend_type,shift);
+}
+
+function clause execute ( LoadRegister(n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize : atom('D)) ) = {
+ offset : bits(64) = ExtendReg(m, extend_type, shift);
+ address : bits(64) = 0; /* ARM: uninitialized */
+ data : bits('D) = 0; /* ARM: uninitialized */
+ wb_unknown : boolean = false;
+ rt_unknown : boolean = false;
+
+ if memop == MemOp_LOAD & wback & n == t & n != 31 then {
+ UnallocatedEncoding(); /* ARM:
+ Constraint c = ConstrainUnpredictable();
+ assert( c vIN [Constraint_WBSUPPRESS, Constraint_UNKNOWN, Constraint_UNDEF, Constraint_NOP] );
+ switch c {
+ Constraint_WBSUPPRESS => wback = false (* writeback is suppressed *)
+ Constraint_UNKNOWN => wb_unknown = true (* writeback is UNKNOWN *)
+ Constraint_UNDEF => UnallocatedEncoding()
+ Constraint_NOP => EndOfInstruction()
+ };*/
+ };
+
+ if memop == MemOp_STORE & wback & n == t & n != 31 then {
+ UnallocatedEncoding(); /* ARM:
+ Constraint c = ConstrainUnpredictable();
+ assert( c vIN [Constraint_NONE, Constraint_UNKNOWN, Constraint_UNDEF, Constraint_NOP] );
+ switch c {
+ Constraint_NONE => rt_unknown = false (* value stored is original value *)
+ Constraint_UNKNOWN => rt_unknown = true (* value stored is UNKNOWN *)
+ Constraint_UNDEF => UnallocatedEncoding()
+ Constraint_NOP => EndOfInstruction()
+ };*/
+ };
+
+ if n == 31 then {
+ if memop != MemOp_PREFETCH then CheckSPAlignment();
+ address = rSP();
+ } else
+ address = rX(n);
+
+ if ~(postindex) then
+ address = address + offset;
+
+ if memop == MemOp_STORE then
+ /* anounce the address */
+ wMem_Addr(address, quot (datasize,8), acctype, false);
+
+ /* this is a hack to allow the address write back to be observed
+ before the memory access */
+ if wback then {
+ let address' = (if ~(postindex) then address else (address + offset)) : bits(64) in
+ if n == 31 then
+ wSP() = address'
+ else
+ wX(n) = address'
+ };
+
+ match memop {
+ MemOp_STORE => {
+ if rt_unknown then
+ data = UNKNOWN : bits('D)
+ else
+ data = rX(t);
+
+ flush_write_buffer(
+ wMem(empty_write_buffer, address, quot(datasize,8), acctype, data)
+ );
+ },
+
+ MemOp_LOAD => {
+ data = flush_read_buffer(
+ rMem(empty_read_buffer, address, quot(datasize,8), acctype),
+ quot(datasize,8)
+ );
+ if _signed then
+ wX(t) = SignExtend(data) : bits('R)
+ else
+ wX(t) = ZeroExtend(data) : bits('R);
+ },
+
+ MemOp_PREFETCH =>
+ Prefetch(address,t : bits(5))
+ };
+
+/* ARM: the following code was moved up, see note there
+ if wback then {
+ if wb_unknown then
+ address = (bits(64)) UNKNOWN
+ else if postindex then
+ address = address + offset;
+ if n == 31 then
+ wSP() = address
+ else
+ wX(n) = address;
+ };
+*/
+}
+
+/* LDTR/STTR */
+/* LDTRB/STTRB */
+/* LDTRH/STTRH */
+/* LDTRSB */
+/* LDTRSH */
+/* LDTRSW */
+
+val decodeLoadStoreRegisterUnprivileged : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadStoreRegisterUnprivileged (size@0b111@[0]@0b00@opc@[0]@(imm9 : bits(9))@0b10@Rn@Rt) = {
+ wback : boolean = false;
+ postindex : boolean = false;
+ scale : uinteger = UInt(size);
+ offset : bits(64) = SignExtend(imm9);
+
+ sharedDecodeLoadImmediate(opc,size,Rn,Rt,wback,postindex,scale,offset,AccType_UNPRIV,false);
+}
+
+/* LDUR/STRUR */
+/* LDURB/STURB */
+/* LDURH/STURH */
+/* LDURSB */
+/* LDURSH */
+/* LDURSW */
+/* PRFUM */
+val decodeLoadStoreRegisterUnscaledImmediate : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadStoreRegisterUnscaledImmediate (size@0b111@[0]@0b00@opc@[0]@(imm9 : bits(9))@0b00@Rn@Rt) = {
+ wback : boolean = false;
+ postindex : boolean = false;
+ scale : uinteger = UInt(size);
+ offset : bits(64) = SignExtend(imm9);
+
+ sharedDecodeLoadImmediate(opc,size,Rn,Rt,wback,postindex,scale,offset,AccType_NORMAL,true);
+}
+
+/* LDR/STR (immediate) Unsigned offset */
+/* LDRB/STRB (immediate) Unsigned offset */
+/* LDRH/STRH (immediate) Unsigned offset */
+/* LDRSB (immediate) Unsigned offset */
+/* LDRSH (immediate) Unsigned offset */
+/* LDRSW (immediate) Unsigned offset */
+/* PRFM (immediate) Unsigned offset */
+val decodeLoadStoreRegisterUnsignedImmediate : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadStoreRegisterUnsignedImmediate (size@0b111@[0]@0b01@opc@(imm12 : bits(12))@Rn@Rt) = {
+ wback : boolean = false;
+ postindex : boolean = false;
+ scale : uinteger = UInt(size);
+ offset : bits(64) = LSL(ZeroExtend(imm12), scale);
+
+ sharedDecodeLoadImmediate(opc,size,Rn,Rt,wback,postindex,scale,offset,AccType_NORMAL,true);
+}
+
+function sharedDecodeLoadStorePair forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ (L,opc : bits(2),imm7,Rn,Rt,Rt2,wback,postindex) -> option(ast('R,'D)) = {
+ n : (reg_index) = UInt_reg(Rn);
+ t : (reg_index) = UInt_reg(Rt);
+ t2 : (reg_index) = UInt_reg(Rt2);
+ acctype : (AccType) = AccType_NORMAL;
+ memop : (MemOp) = if L == 1 then MemOp_LOAD else MemOp_STORE;
+ if [L,opc[0]] == 0b01 | opc == 0b11 then UnallocatedEncoding();
+ _signed : (boolean) = (opc[0] != 0);
+ scale : (uinteger) = 2 + UInt([opc[1]]);
+ datasize : atom('D) = lsl(8, scale);
+ offset : (bits(64)) = LSL(SignExtend(imm7), scale);
+
+ Some(LoadStorePair(wback,postindex,n,t,t2,acctype,memop,_signed,datasize,offset));
+}
+
+/* LDP signed offset */
+/* LDPSW signed offset */
+/* STP signed offset */
+val decodeLoadStoreRegisterPairOffset : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadStoreRegisterPairOffset (opc@0b101@[0]@0b010@[L]@(imm7 : bits(7))@Rt2@Rn@Rt) = {
+ wback : boolean = false;
+ postindex : boolean = false;
+
+ sharedDecodeLoadStorePair(L,opc,imm7,Rn,Rt,Rt2,wback,postindex);
+}
+
+function clause execute ( LoadStorePair(wback,postindex,n,t,t2,acctype,memop,_signed,datasize : atom('D),offset) ) = {
+ address : bits(64) = 0; /* ARM: uninitialized */
+ data1 : (bits('D)) = 0; /* ARM: uninitialized */
+ data2 : (bits('D)) = 0; /* ARM: uninitialized */
+ /*constant*/ dbytes : (uinteger) = quot (datasize,8);
+ rt_unknown : (boolean) = false;
+ wb_unknown : (boolean) = false;
+
+ if memop == MemOp_LOAD & wback & (t == n | t2 == n) & n != 31 then {
+ UnallocatedEncoding(); /* ARM:
+ Constraint c = ConstrainUnpredictable();
+ assert( c vIN [Constraint_WBSUPPRESS, Constraint_UNKNOWN, Constraint_UNDEF, Constraint_NOP] );
+ switch c {
+ Constraint_WBSUPPRESS => wback = false (* writeback is suppressed *)
+ Constraint_UNKNOWN => wb_unknown = true, (* writeback is UNKNOWN *)
+ Constraint_UNDEF => UnallocatedEncoding(),
+ Constraint_NOP => EndOfInstruction()
+ };*/
+ };
+
+ if memop == MemOp_STORE & wback & (t == n | t2 == n) & n != 31 then {
+ UnallocatedEncoding(); /* ARM:
+ Constraint c = ConstrainUnpredictable();
+ assert( c vIN [Constraint_NONE, Constraint_UNKNOWN, Constraint_UNDEF, Constraint_NOP] );
+ switch c {
+ Constraint_NONE => rt_unknown = false (* value stored is pre-writeback *)
+ Constraint_UNKNOWN => rt_unknown = true (* value stored is UNKNOWN *)
+ Constraint_UNDEF => UnallocatedEncoding()
+ Constraint_NOP => EndOfInstruction()
+ };*/
+ };
+
+ if memop == MemOp_LOAD & t == t2 then {
+ UnallocatedEncoding(); /* ARM
+ Constraint c = ConstrainUnpredictable();
+ assert( c vIN [Constraint_UNKNOWN, Constraint_UNDEF, Constraint_NOP] );
+ switch c {
+ Constraint_UNKNOWN => rt_unknown = true (* result is UNKNOWN *)
+ Constraint_UNDEF => UnallocatedEncoding()
+ Constraint_NOP => EndOfInstruction()
+ };*/
+ };
+
+ if n == 31 then {
+ CheckSPAlignment();
+ address = rSP();
+ } else
+ address = rX(n);
+
+ if ~(postindex) then
+ address = address + offset;
+
+ if memop == MemOp_STORE then
+ /* anounce the address */
+ wMem_Addr(address, dbytes * 2, acctype, false);
+
+ /* this is a hack to allow the address write back to be observed
+ before the memory access */
+ if wback then {
+ let address' = (if ~(postindex) then address else (address + offset)) : (bits(64)) in
+ if n == 31 then
+ wSP() = address'
+ else
+ wX(n) = address'
+ };
+
+ match memop {
+ MemOp_STORE => {
+ if rt_unknown & t == n then
+ data1 = UNKNOWN : (bits('D))
+ else
+ data1 = rX(t);
+ if rt_unknown & t2 == n then
+ data2 = UNKNOWN : (bits('D))
+ else
+ data2 = rX(t2);
+
+ write_buffer : write_buffer_type = wMem(empty_write_buffer, address + 0, dbytes, acctype, data1);
+ write_buffer = wMem(write_buffer, address + dbytes, dbytes, acctype, data2);
+ flush_write_buffer(write_buffer);
+ },
+
+ MemOp_LOAD => {
+ read_buffer : read_buffer_type = rMem(empty_read_buffer, address + 0, dbytes, acctype);
+ read_buffer = rMem(read_buffer, address + dbytes, dbytes, acctype);
+ read_data : bits('D*2) = flush_read_buffer(read_buffer, dbytes*2);
+ data1 = read_data[(datasize - 1) .. 0];
+ data2 = read_data[((datasize * 2) - 1) .. datasize];
+ if rt_unknown then {
+ data1 = UNKNOWN : bits('D);
+ data2 = UNKNOWN : bits('D);
+ };
+ if _signed then {
+ wX(t) = (SignExtend(data1)) : (bits(64));
+ wX(t2) = (SignExtend(data2)) : (bits(64));
+ } else {
+ wX(t) = data1;
+ wX(t2) = data2;
+ };
+ }
+ };
+
+/* ARM: the following code was moved up, see note there
+ if wback then {
+ if wb_unknown then
+ address = (bits(64)) UNKNOWN
+ else if postindex then
+ address = address + offset;
+ if n == 31 then
+ wSP() = address
+ else
+ wX(n) = address;
+ };
+*/
+}
+
+/* LDP post-index */
+/* LDPSW post-index */
+/* STP post-index */
+val decodeLoadStoreRegisterPairPostIndexed : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadStoreRegisterPairPostIndexed (opc@0b101@[0]@0b001@[L]@(imm7 : bits(7))@Rt2@Rn@Rt) = {
+ wback : boolean = true;
+ postindex : boolean = true;
+
+ sharedDecodeLoadStorePair(L,opc,imm7,Rn,Rt,Rt2,wback,postindex);
+}
+
+/* LDP pre-index */
+/* LDPSW pre-index */
+/* STP pre-index */
+val decodeLoadStoreRegisterPairPreIndexed : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadStoreRegisterPairPreIndexed (opc@0b101@[0]@0b011@[L]@(imm7 : bits(7))@Rt2@Rn@Rt) = {
+ wback : boolean = true;
+ postindex : boolean = false;
+
+ sharedDecodeLoadStorePair(L,opc,imm7,Rn,Rt,Rt2,wback,postindex);
+}
+
+/* ADD/ADDS (immediate) */
+/* SUB/SUBS (immediate) */
+val decodeAddSubtractImmediate : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeAddSubtractImmediate ([sf]@[op]@[S]@0b10001@shift@(imm12 : bits(12))@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ datasize : atom('R) = if sf == 1 then 64 else 32;
+ sub_op : (boolean) = (op == 1);
+ setflags : (boolean) = (S == 1);
+ imm : (bits('R)) = 0; /* ARM: uninitialized */
+
+ match shift {
+ 0b00 => imm = ZeroExtend(imm12),
+ 0b01 => imm = ZeroExtend(imm12 @ (0b0 ^^ 12)),
+ [1,_] => ReservedValue()
+ };
+
+ Some(AddSubImmediate(d,n,datasize,sub_op,setflags,imm));
+}
+
+function clause execute (AddSubImmediate(d,n,datasize,sub_op,setflags,imm)) = {
+ operand1 : (bits('R)) = if n == 31 then rSP() else rX(n);
+ operand2 : (bits('R)) = imm;
+ carry_in : (bit) = 0; /* ARM: uninitialized */
+
+ if sub_op then {
+ operand2 = NOT(operand2);
+ carry_in = 1;
+ }
+ else
+ carry_in = 0;
+
+ let (result,nzcv) = AddWithCarry (operand1, operand2, carry_in) in {
+
+ if setflags then
+ wPSTATE_NZCV() = nzcv;
+
+ if (d == 31 & ~(setflags)) then
+ wSP() = result
+ else
+ wX(d) = result;
+ }
+}
+
+/* BFM */
+/* SBFM */
+/* UBFM */
+val decodeBitfield : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeBitfield ([sf]@opc@0b100110@[N]@(immr : bits(6))@(imms : bits(6))@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ datasize : atom('R) = if sf == 1 then 64 else 32;
+
+ inzero : (boolean) = false; /* ARM: uninitialized */
+ extend : (boolean) = false; /* ARM: uninitialized */
+ R : (uinteger) = 0; /* ARM: uninitialized */
+ S : (uinteger) = 0; /* ARM: uninitialized */
+
+ match opc {
+ 0b00 => {inzero = true; extend = true}, /* SBFM */
+ 0b01 => {inzero = false; extend = false}, /* BFM */
+ 0b10 => {inzero = true; extend = false}, /* UBFM */
+ 0b11 => UnallocatedEncoding()
+ };
+
+ if sf == 1 & N != 1 then ReservedValue();
+ if sf == 0 & (N != 0 | immr[5] != 0 | imms[5] != 0) then ReservedValue();
+
+ R = UInt(immr);
+ S = UInt(imms);
+
+ let (wmask : bits('R), tmask : bits('R)) = (DecodeBitMasks(N, imms, immr, false)) in {
+
+ Some(BitfieldMove(d,n,datasize,inzero,extend,R,S,wmask,tmask));
+}}
+
+
+function clause execute (BitfieldMove(d,n,datasize,inzero,extend,R,S,wmask,tmask)) = {
+ dst : bits('R) = if inzero then Zeros() else rX(d);
+ src : bits('R) = rX(n);
+
+ /* perform bitfield move on low bits */
+ bot : (bits('R)) = ((dst & NOT(wmask)) | (ROR(src, R) & wmask));
+
+ /* determine extension bits (sign, zero or dest register) */
+ top : (bits('R)) = if extend then Replicate([src[S]]) else dst;
+
+ /* combine extension bits and result bits */
+ wX(d) = ((top & NOT(tmask)) | (bot & tmask));
+}
+
+/* EXTR */
+val decodeExtract : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeExtract ([sf]@0b00@0b100111@[N]@0b0@Rm@(imms : bits(6))@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ datasize : atom('R) = if sf == 1 then 64 else 32;
+ lsb : (uinteger) = 0; /* ARM: uninitialized */
+
+ if N != sf then UnallocatedEncoding();
+ if sf == 0 & imms[5] == 1 then ReservedValue();
+ lsb = UInt(imms);
+
+ Some(ExtractRegister(d,n,m,datasize,lsb));
+}
+
+function clause execute ( ExtractRegister(d,n,m,datasize : atom('R),lsb) ) = {
+ result : (bits('R)) = 0; /* ARM: uninitialized */
+ operand1 : (bits('R)) = rX(n);
+ operand2 : (bits('R)) = rX(m);
+
+ concat : (bits(2*'R)) = operand1:operand2;
+ result = concat[(lsb + datasize - 1)..lsb];
+ wX(d) = result;
+}
+
+/* AND/ANDS (immediate) */
+/* EOR (immediate) */
+/* ORR (immediate) */
+val decodeLogicalImmediate : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLogicalImmediate ([sf]@opc@0b100100@[N]@(immr : bits(6))@(imms : bits(6))@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ datasize : atom('R) = if sf == 1 then 64 else 32;
+ setflags : (boolean) = false; /* ARM: uninitialized */
+ op : (LogicalOp) = LogicalOp_AND; /* ARM: uninitialized */
+ match opc {
+ 0b00 => {op = LogicalOp_AND; setflags = false},
+ 0b01 => {op = LogicalOp_ORR; setflags = false},
+ 0b10 => {op = LogicalOp_EOR; setflags = false},
+ 0b11 => {op = LogicalOp_AND; setflags = true}
+ };
+
+ if sf == 0 & N != 0 then ReservedValue();
+ let (imm,_) = (DecodeBitMasks(N, imms, immr, true)) in {
+
+ Some(LogicalImmediate(d,n,datasize,setflags,op,imm));
+}}
+
+function clause execute (LogicalImmediate(d,n,datasize : atom('R),setflags,op,imm)) = {
+ result : (bits('R)) = 0; /* ARM: uninitialized */
+ operand1 : (bits('R)) = rX(n);
+ operand2 : (bits('R)) = imm;
+
+ match op {
+ LogicalOp_AND => result = (operand1 & operand2),
+ LogicalOp_ORR => result = (operand1 | operand2),
+ LogicalOp_EOR => result = (operand1 ^ operand2)
+ };
+
+ if setflags then
+ wPSTATE_NZCV() = ([result[length(result) - 1]]@[IsZeroBit(result)]@0b00);
+
+ if d == 31 & ~(setflags) then
+ wSP() = result
+ else
+ wX(d) = result;
+}
+
+/* MOVK */
+/* MOVN */
+/* MOVZ */
+val decodeMoveWideImmediate : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeMoveWideImmediate ([sf]@opc@0b100101@(hw : bits(2))@(imm16 : bits(16))@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ datasize : atom('R) = if sf == 1 then 64 else 32;
+ imm : (bits(16)) = imm16;
+ pos : (uinteger) = 0; /* ARM: uninitialized */
+ opcode : (MoveWideOp) = 0; /* ARM: uninitialized */
+
+ match opc {
+ 0b00 => opcode = MoveWideOp_N,
+ 0b10 => opcode = MoveWideOp_Z,
+ 0b11 => opcode = MoveWideOp_K,
+ _ => UnallocatedEncoding()
+ };
+
+ if sf == 0 & hw[1] == 1 then UnallocatedEncoding();
+ pos = UInt(hw@0b0000);
+
+ Some(MoveWide(d,datasize,imm,pos,opcode));
+}
+
+function clause execute ( MoveWide(d,datasize,imm,pos,opcode) ) = {
+ result : (bits('R)) = 0; /* ARM: uninitialized */
+
+ if opcode == MoveWideOp_K then
+ result = rX(d)
+ else
+ result = Zeros();
+
+ result[(pos+15)..pos] = imm;
+ if opcode == MoveWideOp_N then
+ result = NOT(result);
+ wX(d) = result;
+}
+
+/* ADR */
+/* ADRP */
+val decodePCRelAddressing : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodePCRelAddressing ([op]@(immlo : bits(2))@0b10000@(immhi : bits(19))@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ page : (boolean) = (op == 1);
+ imm :(bits(64)) = 0; /* ARM: uninitialized */
+
+ if page then
+ imm = SignExtend(immhi@immlo@(0b0 ^^ 12))
+ else
+ imm = SignExtend(immhi@immlo);
+
+ Some(Address(d,page,imm))
+}
+
+function clause execute (Address(d,page,imm)) = {
+ base : (bits(64)) = rPC();
+
+ if page then
+ base[11..0] = (Zeros()) @ (bits(12));
+
+ wX(d) = base + imm;
+}
+
+/* ADD/ADDS (extended register) */
+/* SUB/SUBS (extended register) */
+val decodeAddSubtractExtendedRegister : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeAddSubtractExtendedRegister ([sf]@[op]@[S]@0b01011@0b00@0b1@Rm@option_v@(imm3 : bits(3))@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ datasize : atom('R) = if sf == 1 then 64 else 32;
+ sub_op : (boolean) = (op == 1);
+ setflags : (boolean) = (S == 1);
+ extend_type : (ExtendType) = DecodeRegExtend(option_v);
+ shift : range(0,7) = UInt(imm3);
+ if shift > 4 then ReservedValue();
+
+ Some(AddSubExtendRegister(d,n,m,datasize,sub_op,setflags,extend_type,shift));
+}
+
+function clause execute (AddSubExtendRegister(d,n,m,datasize,sub_op,setflags,extend_type,shift)) = {
+ operand1 : (bits('R)) = if n == 31 then rSP() else rX(n);
+ operand2 : (bits('R)) = ExtendReg(m, extend_type, shift);
+ carry_in : (bit) = 0; /* ARM: uninitialized */
+
+ if sub_op then {
+ operand2 = NOT(operand2);
+ carry_in = 1;
+ } else
+ carry_in = 0;
+
+ let (result,nzcv) = (AddWithCarry(operand1, operand2, carry_in)) in {
+
+ if setflags then
+ wPSTATE_NZCV() = nzcv;
+
+ if (d == 31 & ~(setflags)) then
+ wSP() = result
+ else
+ wX(d) = result;
+ }
+}
+
+/* ADD/ADDS (shifted register) */
+/* SUB/SUBS (shifted register) */
+val decodeAddSubtractShiftedRegister : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeAddSubtractShiftedRegister ([sf]@[op]@[S]@0b01011@shift@0b0@Rm@(imm6 : bits(6))@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ datasize : atom('R) = if sf == 1 then 64 else 32;
+ sub_op : (boolean) = (op == 1);
+ setflags : (boolean) = (S == 1);
+
+ if shift == 0b11 then ReservedValue();
+ if sf == 0 & imm6[5] == 1 then ReservedValue();
+
+ shift_type : (ShiftType) = DecodeShift(shift);
+ shift_amount : range(0,63) = UInt(imm6);
+
+ Some(AddSubShiftedRegister(d,n,m,datasize,sub_op,setflags,shift_type,shift_amount));
+}
+
+function clause execute (AddSubShiftedRegister(d,n,m,datasize,sub_op,setflags,shift_type,shift_amount)) = {
+ operand1 : (bits('R)) = rX(n);
+ operand2 : (bits('R)) = ShiftReg(m, shift_type, shift_amount);
+ carry_in : (bit) = 0; /* ARM: uninitialized */
+
+ if sub_op then {
+ operand2 = NOT(operand2);
+ carry_in = 1;
+ }
+ else
+ carry_in = 0;
+
+ let (result,nzcv) = AddWithCarry(operand1, operand2, carry_in) in {
+
+ if setflags then
+ wPSTATE_NZCV() = nzcv;
+
+ wX(d) = result;
+ }
+}
+
+/* ADC/ADCS */
+/* SBC/SBCS */
+
+
+val decodeAddSubtractWithCarry : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeAddSubtractWithCarry ([sf]@[op]@[S]@0b11010000@Rm@0b000000@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ datasize : (atom('R)) = if sf == 1 then 64 else 32;
+ sub_op : (boolean) = (op == 1);
+ setflags : (boolean) = (S == 1);
+
+ Some(AddSubCarry(d,n,m,datasize,sub_op,setflags));
+}
+
+function clause execute( AddSubCarry(d,n,m,datasize,sub_op,setflags)) = {
+ operand1 : (bits('R)) = rX(n);
+ operand2 : (bits('R)) = rX(m);
+
+ if sub_op then
+ operand2 = NOT(operand2);
+
+ let (result,nzcv) = AddWithCarry (operand1, operand2, PSTATE_C) in {
+
+ if setflags then
+ wPSTATE_NZCV() = nzcv;
+
+ wX(d) = result;
+}}
+
+/* CCMN (immediate) */
+/* CCMP (immediate) */
+val decodeConditionalCompareImmediate : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeConditionalCompareImmediate ([sf]@[op]@[1]@0b11010010@(imm5 : bits(5))@ _cond@[1]@[0]@Rn@[0]@nzcv) = {
+ n : (reg_index) = UInt_reg(Rn);
+ datasize : atom('R) = if sf == 1 then 64 else 32;
+ sub_op : boolean = (op ==1);
+ condition : bits(4) = _cond;
+ flags : bits(4) = nzcv;
+ imm : bits('R) = ZeroExtend(imm5);
+
+ Some(ConditionalCompareImmediate(n,datasize,sub_op,condition,flags,imm));
+}
+
+function clause execute (ConditionalCompareImmediate(n,datasize,sub_op,condition,flags,imm)) = {
+ operand1 : (bits('R)) = rX(n);
+ operand2 : (bits('R)) = imm;
+ carry_in : (bit) = 0;
+
+ flags' : (bits(4)) = flags;
+ if ConditionHolds(condition) then {
+ if sub_op then {
+ operand2 = NOT(operand2);
+ carry_in = 1;
+ };
+ let (_,nzcv) = AddWithCarry(operand1, operand2, carry_in) in {flags' = nzcv};
+ };
+ wPSTATE_NZCV() = flags';
+}
+
+/* CCMN (register) */
+/* CCMP (register) */
+val decodeConditionalCompareRegister : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeConditionalCompareRegister ([sf]@[op]@[1]@0b11010010@Rm@ _cond@[0]@[0]@Rn@[0]@nzcv) = {
+ n : reg_index = UInt_reg(Rn);
+ m : reg_index = UInt_reg(Rm);
+ datasize : atom('R) = if sf == 1 then 64 else 32;
+ sub_op : boolean = (op ==1);
+ condition : bits(4) = _cond;
+ flags : bits(4) = nzcv;
+
+ Some(ConditionalCompareRegister(n,m,datasize,sub_op,condition,flags));
+}
+
+function clause execute (ConditionalCompareRegister(n,m,datasize,sub_op,condition,flags)) = {
+ operand1 : bits('R) = rX(n);
+ operand2 : bits('R) = rX(m);
+ carry_in : bit = 0;
+
+ flags' : bits(4) = flags;
+ if ConditionHolds(condition) then {
+ if sub_op then {
+ operand2 = NOT(operand2);
+ carry_in = 1;
+ };
+ let (_,nzcv) = AddWithCarry (operand1, operand2, carry_in) in {flags' = nzcv};
+ };
+ wPSTATE_NZCV() = flags';
+}
+
+/* CSEL op=0,o2=0 */
+/* CSINC op=0,o2=1 */
+/* CSINV op=1,o2=0 */
+/* CSNEG op=1,o2=1 */
+val decodeConditionalSelect : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeConditionalSelect ([sf]@[op]@[0]@0b11010100@Rm@ _cond@[0]@[o2]@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ datasize : (atom('R)) = if sf == 1 then 64 else 32;
+ condition : (bits(4)) = _cond;
+ else_inv : (boolean) = (op == 1);
+ else_inc : (boolean) = (o2 == 1);
+
+ Some(ConditionalSelect(d,n,m,datasize,condition,else_inv,else_inc));
+}
+
+function clause execute ( ConditionalSelect(d,n,m,datasize,condition,else_inv,else_inc) ) = {
+ result : (bits('R)) = 0; /* ARM: uninitialized */
+ operand1 : (bits('R)) = rX(n);
+ operand2 : (bits('R)) = rX(m);
+
+ if ConditionHolds(condition) then
+ result = operand1
+ else {
+ result = operand2;
+ if else_inv then result = NOT(result);
+ if else_inc then result = result + 1;
+ };
+
+ wX(d) = result;
+}
+
+val decodeData1Source : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+scattered function decodeData1Source
+
+/* RBIT */
+/* REV */
+/* REV16 */
+/* REV32 */
+function clause decodeData1Source ([sf]@[1]@[0]@0b11010110@0b00000@0b0000@opc@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+
+ datasize : (atom('R)) = if sf == 1 then 64 else 32;
+
+ op : (RevOp) = 0; /* ARM: uninitialized */
+ match opc {
+ 0b00 =>
+ op = RevOp_RBIT,
+ 0b01 =>
+ op = RevOp_REV16,
+ 0b10 =>
+ op = RevOp_REV32,
+ 0b11 => {
+ if sf == 0 then UnallocatedEncoding();
+ op = RevOp_REV64;
+ }
+ };
+
+ Some(Reverse(d,n,datasize,op));
+}
+
+function clause execute ( Reverse(d,n,datasize,op) ) = {
+ result : (bits('R)) = 0; /* ARM uninitialized */
+ V : (bits(6)) = 0; /* ARM uninitialized */
+
+ match op {
+ RevOp_REV16 => V = 0b001000,
+ RevOp_REV32 => V = 0b011000,
+ RevOp_REV64 => V = 0b111000,
+ RevOp_RBIT => V = if datasize == 64 then 0b111111 else 0b011111
+ };
+
+ result = rX(n);
+
+ foreach (vbit from 0 to 5) {
+ /* Swap pairs of 2^vbit bits in result */
+ if V[vbit] == 1 then {
+ tmp : (bits('R)) = result;
+ vsize : (uinteger) = lsl(1, vbit);
+ foreach (base from 0 to (datasize - 1) by (2 * vsize)) { /* ARM: while base < datasize do */
+ result[((base+vsize) - 1)..base] = tmp[(base+(2*vsize) - 1)..(base+vsize)];
+ result[(base+(2*vsize) - 1)..(base+vsize)] = tmp[(base+vsize - 1)..base];
+ /* ARM: base = base + (2 * vsize); */
+ };
+ };
+ };
+ wX(d) = result;
+}
+
+/* CLS */
+/* CLZ */
+function clause decodeData1Source ([sf]@[1]@[0]@0b11010110@0b00000@0b00010@[op]@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ datasize : (atom('R)) = if sf == 1 then 64 else 32;
+ opcode : (CountOp) = if op == 0 then CountOp_CLZ else CountOp_CLS;
+
+ Some(CountLeading(d,n,datasize,opcode));
+}
+
+function clause execute (CountLeading(d,n,datasize,opcode)) = {
+ result : (uinteger) = 0; /* ARM: uninitialized */
+ operand1 : (bits('R)) = rX(n);
+
+ if opcode == CountOp_CLZ then
+ result = CountLeadingZeroBits(operand1)
+ else
+ result = CountLeadingSignBits(operand1);
+
+ wX(d) = result : bits('R);
+}
+
+end decodeData1Source
+
+val decodeData2Source : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+scattered function decodeData2Source
+
+/* SDIV o1=1 */
+/* UDIV o1=0 */
+function clause decodeData2Source ([sf]@[0]@[0]@0b11010110@Rm@0b00001@[o1]@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ datasize : (atom('R)) = if sf == 1 then 64 else 32;
+ _unsigned : (boolean) = (o1 == 0);
+
+ Some(Division(d,n,m,datasize,_unsigned));
+}
+
+function clause execute ( Division(d,n,m,datasize,_unsigned) ) = {
+ operand1 : (bits('R)) = rX(n);
+ operand2 : (bits('R)) = rX(m);
+ result : (integer) = 0; /* ARM: uninitialized */
+
+ if IsZero(operand2) then
+ result = 0
+ else
+ result = /* ARM: RoundTowardsZero*/ quot (_Int(operand1, _unsigned), _Int(operand2, _unsigned)); /* FIXME: does quot round towards zero? */
+
+ wX(d) = result : (bits('R)) ; /* ARM: result[(datasize-1)..0] */
+}
+
+/* ASRV */
+/* LSLV */
+/* LSRV */
+/* RORV */
+function clause decodeData2Source ([sf]@[0]@[0]@0b11010110@Rm@0b0010@op2@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ datasize : (atom('R)) = if sf == 1 then 64 else 32;
+ shift_type : (ShiftType) = DecodeShift(op2);
+
+ Some(Shift(d,n,m,datasize,shift_type));
+}
+
+function clause execute (Shift(d,n,m,datasize,shift_type)) = {
+ result : (bits('R)) = 0; /* ARM: uninitialized */
+ operand2 : (bits('R)) = rX(m);
+
+ result = ShiftReg(n, shift_type, mod (UInt(operand2), datasize));
+ wX(d) = result;
+}
+
+/* CRC32B/CRC32H/CRC32W/CRC32X C=0 */
+/* CRC32CB/CRC32CH/CRC32CW/CRC32CX C=1 */
+function clause decodeData2Source ([sf]@[0]@[0]@0b11010110@Rm@0b010@[C]@sz@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ if sf == 1 & sz != 0b11 then UnallocatedEncoding();
+ if sf == 0 & sz == 0b11 then UnallocatedEncoding();
+ size : (atom('D)) = lsl(8, UInt(sz)); /* 2-bit size field -> 8, 16, 32, 64 */
+ crc32c : (boolean) = (C == 1);
+
+ Some(CRC(d,n,m,size,crc32c));
+}
+
+function clause execute ( CRC(d,n,m,size,crc32c) ) = {
+ if ~(HaveCRCExt()) then
+ UnallocatedEncoding();
+
+ acc : (bits(32)) = rX(n); /* accumulator */
+ _val : (bits('D)) = rX(m); /* input value */
+ poly : (bits(32)) = if crc32c then 0x1EDC6F41 else 0x04C11DB7;
+
+ tempacc : (bits(32+'D)) = BitReverse(acc) @ (Zeros(): bits('D));
+ tempval : (bits('D+32)) = BitReverse(_val) @ (Zeros() : bits(32));
+
+ /* Poly32Mod2 on a bitstring does a polynomial Modulus over {0,1} operation */
+ wX(d) = BitReverse(Poly32Mod2(tempacc ^ tempval, poly));
+}
+
+end decodeData2Source
+
+val decodeData3Source : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+scattered function decodeData3Source
+
+/* MADD o0=0 */
+/* MSUB o0=1 */
+function clause decodeData3Source ([sf]@0b00@0b11011@0b000@Rm@[o0]@Ra@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ a : (reg_index) = UInt_reg(Ra);
+ destsize : (atom('R)) = if sf == 1 then 64 else 32;
+ datasize : (atom('D)) = destsize;
+ sub_op : (boolean) = (o0 == 1);
+
+ Some(MultiplyAddSub(d,n,m,a,destsize,datasize,sub_op));
+}
+
+function clause execute ( MultiplyAddSub(d,n,m,a,destsize,datasize,sub_op) ) = {
+ operand1 : (bits('D)) = rX(n);
+ operand2 : (bits('D)) = rX(m);
+ operand3 : (bits('R)) = rX(a);
+
+ result : (integer) = 0; /* ARM: uninitialized */
+
+ if sub_op then
+ result = UInt(operand3) - (UInt(operand1) * UInt(operand2))
+ else
+ result = UInt(operand3) + (UInt(operand1) * UInt(operand2));
+
+ wX(d) = result : (bits('R));
+}
+
+/* SMADDL */
+/* SMSUBL */
+/* UMADDL */
+/* UMSUBL */
+function clause decodeData3Source ([1]@0b00@0b11011@[U]@0b01@Rm@[o0]@Ra@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ a : (reg_index) = UInt_reg(Ra);
+ destsize : (atom('R)) = 64;
+ datasize : (atom('D)) = 32;
+ sub_op : (boolean) = (o0 == 1);
+ _unsigned : (boolean) = (U == 1);
+
+ Some(MultiplyAddSubLong(d,n,m,a,destsize,datasize,sub_op,_unsigned));
+}
+
+function clause execute ( MultiplyAddSubLong(d,n,m,a,destsize,datasize,sub_op,_unsigned) ) = {
+ operand1 : (bits('D)) = rX(n);
+ operand2 : (bits('D)) = rX(m);
+ operand3 : (bits('R)) = rX(a);
+
+ result : (integer) = 0; /* ARM: uninitialized */
+
+ if sub_op then
+ result = _Int(operand3, _unsigned) - (_Int(operand1, _unsigned) * _Int(operand2, _unsigned))
+ else
+ result = _Int(operand3, _unsigned) + (_Int(operand1, _unsigned) * _Int(operand2, _unsigned));
+
+ wX(d) = result : (bits(64));
+}
+
+/* SMULH */
+/* UMULH */
+function clause decodeData3Source ([1]@0b00@0b11011@[U]@0b10@Rm@[0]@Ra@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ a : (reg_index) = UInt_reg(Ra); /* ignored by UMULH/SMULH */
+ destsize : (atom('R)) = 64;
+ datasize : (atom('D)) = destsize;
+ _unsigned : (boolean) = (U == 1);
+
+ Some(MultiplyHigh(d,n,m,a,destsize,datasize,_unsigned));
+}
+
+function clause execute ( MultiplyHigh(d,n,m,a,destsize,datasize,_unsigned) ) = {
+ operand1 : (bits('R)) = rX(n);
+ operand2 : (bits('R)) = rX(m);
+
+ result : (integer) = 0; /* ARM: uninitialized */
+
+ result = _Int(operand1, _unsigned) * _Int(operand2, _unsigned);
+
+ wX(d) = (result : bits(128))[127..64];
+}
+
+end decodeData3Source
+
+/* AND/ANDS (shifted register) */
+/* EON (shifted register) */
+/* EOR (shifted register) */
+/* ORN (shifted register) */
+/* ORR (shifted register) */
+/* BIC/BICS (shifted register) */
+val decodeLogicalShiftedRegister : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLogicalShiftedRegister ([sf]@opc@0b01010@shift@[N]@Rm@(imm6 : bits(6))@Rn@Rd) = {
+ d : (reg_index) = UInt_reg(Rd);
+ n : (reg_index) = UInt_reg(Rn);
+ m : (reg_index) = UInt_reg(Rm);
+ datasize : (atom('R)) = if sf == 1 then 64 else 32;
+ setflags : (boolean) = false; /* ARM: uninitialized */
+ op : (LogicalOp) = LogicalOp_AND; /* ARM: uninitialized */
+ match opc {
+ 0b00 => {op = LogicalOp_AND; setflags = false},
+ 0b01 => {op = LogicalOp_ORR; setflags = false},
+ 0b10 => {op = LogicalOp_EOR; setflags = false},
+ 0b11 => {op = LogicalOp_AND; setflags = true}
+ };
+
+ if sf == 0 & imm6[5] == 1 then ReservedValue();
+
+ shift_type : (ShiftType) = DecodeShift(shift);
+ shift_amount : range(0,63) = UInt(imm6);
+ invert : (boolean) = (N == 1);
+
+ Some(LogicalShiftedRegister(d,n,m,datasize,setflags,op,shift_type,shift_amount,invert))
+}
+
+function clause execute (LogicalShiftedRegister(d,n,m,datasize,setflags,op,shift_type,shift_amount,invert)) = {
+
+ operand1 : (bits('R)) = rX(n);
+ operand2 : (bits('R)) = ShiftReg(m, shift_type, shift_amount);
+
+ if invert then operand2 = NOT(operand2);
+
+ result : (bits('R)) = 0; /* ARM: uninitialized */
+ match op {
+ LogicalOp_AND => result = (operand1 & operand2),
+ LogicalOp_ORR => result = (operand1 | operand2),
+ LogicalOp_EOR => result = (operand1 ^ operand2)
+ };
+
+ if setflags then
+ wPSTATE_NZCV() = ([result[datasize - 1]]@[IsZeroBit(result)]@0b00);
+
+ wX(d) = result;
+}
+
+val decodeDataSIMDFPoint1 : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+function decodeDataSIMDFPoint1 (machineCode) = {
+ not_implemented("decodeDataSIMDFPoint1");
+ Some(Unallocated);
+}
+
+val decodeDataSIMDFPoint2 : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+function decodeDataSIMDFPoint2 ( machineCode) = {
+ not_implemented("decodeDataSIMDFPoint2");
+ Some(Unallocated);
+}
+
+val decodeDataRegister : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeDataRegister (machineCode) = {
+ match machineCode {
+ ([_]@[_]@[_]@[0]@ [1]@[0]@[1]@[0]@ [_]@[_]@[_]@ (_ : bits(9)) @[_]@(_ : bits(11))) => decodeLogicalShiftedRegister(machineCode),
+ ([_]@[_]@[_]@[0]@ [1]@[0]@[1]@[1]@ [_]@[_]@[0]@ (_ : bits(9)) @[_]@(_ : bits(11))) => decodeAddSubtractShiftedRegister(machineCode),
+ ([_]@[_]@[_]@[0]@ [1]@[0]@[1]@[1]@ [_]@[_]@[1]@ (_ : bits(9)) @[_]@(_ : bits(11))) => decodeAddSubtractExtendedRegister(machineCode),
+ ([_]@[_]@[_]@[1]@ [1]@[0]@[1]@[0]@ [0]@[0]@[0]@ (_ : bits(9)) @[_]@(_ : bits(11))) => decodeAddSubtractWithCarry(machineCode),
+ ([_]@[_]@[_]@[1]@ [1]@[0]@[1]@[0]@ [0]@[1]@[0]@ (_ : bits(9)) @[0]@(_ : bits(11))) => decodeConditionalCompareRegister(machineCode),
+ ([_]@[_]@[_]@[1]@ [1]@[0]@[1]@[0]@ [0]@[1]@[0]@ (_ : bits(9)) @[1]@(_ : bits(11))) => decodeConditionalCompareImmediate(machineCode),
+ ([_]@[_]@[_]@[1]@ [1]@[0]@[1]@[0]@ [1]@[0]@[0]@ (_ : bits(9)) @[_]@(_ : bits(11))) => decodeConditionalSelect(machineCode),
+ ([_]@[_]@[_]@[1]@ [1]@[0]@[1]@[1]@ [_]@[_]@[_]@ (_ : bits(9)) @[_]@(_ : bits(11))) => decodeData3Source(machineCode),
+ ([_]@[0]@[_]@[1]@ [1]@[0]@[1]@[0]@ [1]@[1]@[0]@ (_ : bits(9)) @[_]@(_ : bits(11))) => decodeData2Source(machineCode),
+ ([_]@[1]@[_]@[1]@ [1]@[0]@[1]@[0]@ [1]@[1]@[0]@ (_ : bits(9)) @[_]@(_ : bits(11))) => decodeData1Source(machineCode)
+ }
+}
+
+val decodeDataImmediate : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeDataImmediate (machineCode) = {
+ match machineCode {
+ ((_ : bits(3))@[1]@[0]@[0]@[0]@[0]@[_]@(_ : bits(23))) => decodePCRelAddressing(machineCode),
+ ((_ : bits(3))@[1]@[0]@[0]@[0]@[1]@[_]@(_ : bits(23))) => decodeAddSubtractImmediate(machineCode),
+ ((_ : bits(3))@[1]@[0]@[0]@[1]@[0]@[0]@(_ : bits(23))) => decodeLogicalImmediate(machineCode),
+ ((_ : bits(3))@[1]@[0]@[0]@[1]@[0]@[1]@(_ : bits(23))) => decodeMoveWideImmediate(machineCode),
+ ((_ : bits(3))@[1]@[0]@[0]@[1]@[1]@[0]@(_ : bits(23))) => decodeBitfield(machineCode),
+ ((_ : bits(3))@[1]@[0]@[0]@[1]@[1]@[1]@(_ : bits(23))) => decodeExtract(machineCode)
+ }
+}
+
+val decodeLoadsStores : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeLoadsStores (machineCode) = {
+ match machineCode {
+ ([_]@[_]@[0]@[0]@ [1]@[0]@[0]@[0]@ [_]@[_]@[_]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeLoadStoreExclusive(machineCode),
+ ([_]@[_]@[0]@[1]@ [1]@[_]@[0]@[0]@ [_]@[_]@[_]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeLoadRegisterLiteral(machineCode),
+ ([_]@[_]@[1]@[0]@ [1]@[_]@[0]@[0]@ [0]@[_]@[_]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeLoadStoreNoAllocatePairOffset(machineCode),
+ ([_]@[_]@[1]@[0]@ [1]@[_]@[0]@[0]@ [1]@[_]@[_]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeLoadStoreRegisterPairPostIndexed(machineCode),
+ ([_]@[_]@[1]@[0]@ [1]@[_]@[0]@[1]@ [0]@[_]@[_]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeLoadStoreRegisterPairOffset(machineCode),
+ ([_]@[_]@[1]@[0]@ [1]@[_]@[0]@[1]@ [1]@[_]@[_]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeLoadStoreRegisterPairPreIndexed(machineCode),
+ ([_]@[_]@[1]@[1]@ [1]@[_]@[0]@[0]@ [_]@[_]@[0]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[0]@[0]@ (_ : bits(10)) ) => decodeLoadStoreRegisterUnscaledImmediate(machineCode),
+ ([_]@[_]@[1]@[1]@ [1]@[_]@[0]@[0]@ [_]@[_]@[0]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[0]@[1]@ (_ : bits(10)) ) => decodeLoadStoreRegisterImmediatePostIndexed(machineCode),
+ ([_]@[_]@[1]@[1]@ [1]@[_]@[0]@[0]@ [_]@[_]@[0]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[1]@[0]@ (_ : bits(10)) ) => decodeLoadStoreRegisterUnprivileged(machineCode),
+ ([_]@[_]@[1]@[1]@ [1]@[_]@[0]@[0]@ [_]@[_]@[0]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[1]@[1]@ (_ : bits(10)) ) => decodeLoadStoreRegisterImmediatePreIndexed(machineCode),
+ ([_]@[_]@[1]@[1]@ [1]@[_]@[0]@[0]@ [_]@[_]@[1]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[1]@[0]@ (_ : bits(10)) ) => decodeLoadStoreRegisterRegisterOffset(machineCode),
+ ([_]@[_]@[1]@[1]@ [1]@[_]@[0]@[1]@ [_]@[_]@[_]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeLoadStoreRegisterUnsignedImmediate(machineCode),
+ ([0]@[_]@[0]@[0]@ [1]@[1]@[0]@[0]@ [0]@[_]@[0]@[0]@ [0]@[0]@[0]@[0]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeAdvSIMDLoadStoreMultiStruct(machineCode),
+ ([0]@[_]@[0]@[0]@ [1]@[1]@[0]@[0]@ [1]@[_]@[0]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeAdvSIMDLoadStoreMultiStructPostIndexed(machineCode),
+ ([0]@[_]@[0]@[0]@ [1]@[1]@[0]@[1]@ [0]@[_]@[_]@[0]@ [0]@[0]@[0]@[0]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeAdvSIMDLoadStoreSingleStruct(machineCode),
+ ([0]@[_]@[0]@[0]@ [1]@[1]@[0]@[1]@ [1]@[_]@[_]@[_]@ [_]@[_]@[_]@[_]@ (_ : bits(4)) @[_]@[_]@ (_ : bits(10)) ) => decodeAdvSIMDLoadStoreSingleStructPostIndexed(machineCode)
+ }
+}
+
+val decodeSystemImplementationDefined : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeSystemImplementationDefined (machineCode) = {
+ match machineCode {
+ ((_ : bits(11)) @[0]@[1]@[_]@[_]@[_]@[1]@[_]@[1]@[1]@(_ : bits(12))) => decodeImplementationDefined(machineCode),
+ ((_ : bits(11)) @[1]@[1]@[_]@[_]@[_]@[1]@[_]@[1]@[1]@(_ : bits(12))) => decodeImplementationDefined(machineCode),
+ ((_ : bits(11)) @[_]@[_]@[_]@[_]@[_]@[_]@[_]@[_]@[_]@(_ : bits(12))) => decodeSystem(machineCode)
+ }
+}
+
+
+val decodeBranchesExceptionSystem : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect pure
+function decodeBranchesExceptionSystem (machineCode) = {
+ match machineCode {
+ ([_]@[0]@[0]@[1]@[0]@[1]@[_]@[_]@[_]@[_]@(_ : bits(22))) => decodeUnconditionalBranchImmediate(machineCode),
+ ([_]@[0]@[1]@[1]@[0]@[1]@[0]@[_]@[_]@[_]@(_ : bits(22))) => decodeCompareBranchImmediate(machineCode),
+ ([_]@[0]@[1]@[1]@[0]@[1]@[1]@[_]@[_]@[_]@(_ : bits(22))) => decodeTestBranchImmediate(machineCode),
+ ([0]@[1]@[0]@[1]@[0]@[1]@[0]@[_]@[_]@[_]@(_ : bits(22))) => decodeConditionalBranchImmediate(machineCode),
+ ([1]@[1]@[0]@[1]@[0]@[1]@[0]@[0]@[_]@[_]@(_ : bits(22))) => decodeExceptionGeneration(machineCode),
+ ([1]@[1]@[0]@[1]@[0]@[1]@[0]@[1]@[0]@[0]@(_ : bits(22))) => decodeSystemImplementationDefined(machineCode),
+ ([1]@[1]@[0]@[1]@[0]@[1]@[1]@[_]@[_]@[_]@(_ : bits(22))) => decodeUnconditionalBranchRegister(machineCode)
+ }
+}
+
+val decode : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}.
+ bits(32) -> option(ast('R,'D)) effect {escape}
+function decode (machineCode) = {
+ match machineCode {
+ ((_ : bits(3)) @[0]@[0]@[_]@[_]@(_ : bits(25))) => Some(Unallocated),
+ ((_ : bits(3)) @[1]@[0]@[0]@[_]@(_ : bits(25))) => decodeDataImmediate(machineCode),
+ ((_ : bits(3)) @[1]@[0]@[1]@[_]@(_ : bits(25))) => decodeBranchesExceptionSystem(machineCode),
+ ((_ : bits(3)) @[_]@[1]@[_]@[0]@(_ : bits(25))) => decodeLoadsStores(machineCode),
+ ((_ : bits(3)) @[_]@[1]@[0]@[1]@(_ : bits(25))) => decodeDataRegister(machineCode),
+ ((_ : bits(3)) @[0]@[1]@[1]@[1]@(_ : bits(25))) => decodeDataSIMDFPoint1(machineCode),
+ ((_ : bits(3)) @[1]@[1]@[1]@[1]@(_ : bits(25))) => decodeDataSIMDFPoint2(machineCode),
+ _ => None
+ }
+}
+
+end execute
+
+val supported_instructions : forall 'R 'D, 'R in {32,64} & 'D in {8,16,32,64}. ast('R,'D) -> option(ast('R,'D)) effect pure
+function supported_instructions (instr) = {
+ match instr {
+ _ => Some(instr)
+ }
+}
diff --git a/aarch64_small/armV8_A32_sys_regs.sail b/aarch64_small/armV8_A32_sys_regs.sail
new file mode 100644
index 00000000..9a7f49c4
--- /dev/null
+++ b/aarch64_small/armV8_A32_sys_regs.sail
@@ -0,0 +1,61 @@
+/*========================================================================*/
+/* */
+/* Copyright (c) 2015-2017 Shaked Flur */
+/* Copyright (c) 2015-2017 Kathyrn Gray */
+/* All rights reserved. */
+/* */
+/* This software was developed by the University of Cambridge Computer */
+/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */
+/* (REMS) project, funded by EPSRC grant EP/K008528/1. */
+/* */
+/* 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. */
+/*========================================================================*/
+
+/*************************************************************************/
+/* General system control registers */
+
+register SCR : SCRType /* Secure Configuration Register */
+
+/*************************************************************************/
+/* Debug registers */
+
+bitfield DBGOSDLR_type : bits(32) =
+{
+ /*RES0 : 31..1,*/
+ DLK : 0,
+}
+register DBGOSDLR : DBGOSDLR_type /* Debug OS Double Lock Register */
+
+register DBGPRCR : DBGPRCR_type /* Debug Power Control Register */
+
+
+/*************************************************************************/
+/* Performance Monitors registers */
+
+/*************************************************************************/
+/* Generic Timer registers */
+
+/*************************************************************************/
+/* Generic Interrupt Controller CPU interface registers */
+
diff --git a/aarch64_small/armV8_A64_lib.sail b/aarch64_small/armV8_A64_lib.sail
new file mode 100644
index 00000000..cc405fb3
--- /dev/null
+++ b/aarch64_small/armV8_A64_lib.sail
@@ -0,0 +1,945 @@
+/*========================================================================*/
+/* */
+/* Copyright (c) 2015-2017 Shaked Flur */
+/* Copyright (c) 2015-2017 Kathyrn Gray */
+/* All rights reserved. */
+/* */
+/* This software was developed by the University of Cambridge Computer */
+/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */
+/* (REMS) project, funded by EPSRC grant EP/K008528/1. */
+/* */
+/* 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. */
+/*========================================================================*/
+
+/** FUNCTION:aarch64/exceptions/aborts/AArch64.Abort */
+
+val AArch64_Abort : (bits(64), FaultRecord) -> unit
+function AArch64_Abort(vaddress, fault) = {
+ not_implemented("AArch64_Abort");
+}
+
+/** FUNCTION:AArch64.SPAlignmentFault() */
+
+val AArch64_SPAlignmentFault : unit -> unit effect pure
+function AArch64_SPAlignmentFault() = {
+ not_implemented("AArch64_SPAlignmentFault");
+}
+
+/** FUNCTION:aarch64/exceptions/debug/AArch64.SoftwareBreakpoint */
+
+function AArch64_SoftwareBreakpoint(immediate : bits(16)) -> unit = {
+ not_implemented("AArch64_SoftwareBreakpoint");
+}
+
+/** FUNCTION:aarch64/exceptions/exceptions/AArch64.TakeReset */
+
+val AArch64_TakeReset : boolean -> unit effect {wreg}
+function AArch64_TakeReset(cold_reset) = {
+ assert((~(HighestELUsingAArch32())), None);
+
+ /* Enter the highest implemented Exception level in AArch64 state */
+ PSTATE_nRW = 0;
+ if HaveEL(EL3) then {
+ PSTATE_EL = EL3;
+ SCR_EL3.NS = 0; /* Secure state */
+ } else if HaveEL(EL2) then
+ PSTATE_EL = EL2
+ else
+ PSTATE_EL = EL1;
+
+ /* Reset the system registers and other system components */
+ AArch64_ResetControlRegisters(cold_reset);
+
+ /* Reset all other PSTATE fields */
+ PSTATE_SP = 0; /* Select stack pointer */
+ wPSTATE_DAIF() = 0b1111; /* All asynchronous exceptions masked */
+ PSTATE_SS = 0; /* Clear software step bit */
+ PSTATE_IL = 0; /* Clear illegal execution state bit */
+
+ /* All registers, bits and fields not reset by the above pseudocode or by the BranchTo() call */
+ /* below are UNKNOWN bitstrings after reset. In particular, the return information registers */
+ /* ELR_ELx and SPSR_ELx have UNKNOWN values, so that it is impossible to return from a reset */
+ /* in an architecturally defined way. */
+ AArch64_ResetGeneralRegisters();
+ AArch64_ResetSIMDFPRegisters();
+ AArch64_ResetSpecialRegisters();
+ ResetExternalDebugRegisters(cold_reset);
+
+ rv : bits(64) = 0; /* ARM: uninitialized */ /* IMPLEMENTATION DEFINED reset vector */
+ if HaveEL(EL3) then
+ rv = RVBAR_EL3
+ else if HaveEL(EL2) then
+ rv = RVBAR_EL2
+ else
+ rv = RVBAR_EL1;
+
+ /* The reset vector must be correctly aligned */
+ assert((IsZero(rv[63..(PAMax())]) & IsZero(rv[1..0])), Some("reset vector not correctly aligned"));
+
+ BranchTo(rv, BranchType_UNKNOWN);
+}
+
+/** FUNCTION:aarch64/exceptions/syscalls/AArch64.CallHypervisor */
+
+val AArch64_CallHypervisor : immediate -> unit
+function AArch64_CallHypervisor (immediate) = {
+ not_implemented("AArch64_CallHypervisor");
+}
+
+/** FUNCTION:aarch64/exceptions/syscalls/AArch64.CallSecureMonitor */
+
+val AArch64_CallSecureMonitor : bits(16) -> unit
+function AArch64_CallSecureMonitor(immediate) = {
+ not_implemented("AArch64_CallSecureMonitor");
+}
+
+/** FUNCTION:aarch64/exceptions/syscalls/AArch64.CallSupervisor */
+
+val AArch64_CallSupervisor : bits(16) -> unit
+function AArch64_CallSupervisor(immediate) = {
+ not_implemented("AArch64_CallSupervisor");
+}
+
+/** FUNCTION:aarch64/exceptions/traps/AArch64.CheckForSMCTrap */
+
+val AArch64_CheckForSMCTrap : bits(16) -> unit
+function AArch64_CheckForSMCTrap(imm) = {
+ route_to_el2 : boolean = (HaveEL(EL2) & ~(IsSecure()) & (PSTATE_EL == EL0 | PSTATE_EL == EL1) & HCR_EL2.TSC == 1);
+ if route_to_el2 then {
+ not_implemented("AArch64_CheckForSMCTrap route_to_el2");
+ /* ARM:
+ bits(64) preferred_exception_return = ThisInstrAddr();
+ vect_offset = 0x0;
+ exception = ExceptionSyndrome(Exception_MonitorCall);
+ exception.syndrome<15:0> = imm;
+ AArch64.TakeException(EL2, exception, preferred_exception_return, vect_offset);
+ */
+ };
+}
+
+/** FUNCTION:aarch64/exceptions/traps/AArch64.CheckForWFxTrap */
+
+val AArch64_CheckForWFxTrap : (bits(2), boolean) -> unit effect{rreg}
+function AArch64_CheckForWFxTrap(target_el, is_wfe) = {
+ assert((HaveEL(target_el)), None);
+
+ trap : boolean = false; /* ARM: uninitialized */
+
+ if target_el == EL1 then trap = ((if is_wfe then SCTLR_EL1.nTWE else SCTLR_EL1.nTWI) == 0)
+ else if target_el == EL2 then trap = ((if is_wfe then HCR_EL2.TWE else HCR_EL2.TWI) == 1)
+ else if target_el == EL3 then trap = ((if is_wfe then SCR_EL3.TWE else SCR_EL3.TWI) == 1)
+ else {assert(false,None); ()};
+
+
+ if trap then
+ AArch64_WFxTrap(target_el, is_wfe);
+}
+
+/** FUNCTION:aarch64/exceptions/traps/AArch64.SystemRegisterTrap */
+
+function AArch64_SystemRegisterTrap(
+ target_el : bits(2), op0 : bits(2), op2 : bits(3), op1 : bits(3),
+ crn : bits(4), rt : bits(5), crm : bits(4), dir : bit) -> unit = {
+ not_implemented("AArch64_SystemRegisterTrap");
+}
+
+/** FUNCTION:aarch64/exceptions/traps/AArch64.UndefinedFault */
+
+function AArch64_UndefinedFault() -> unit = {
+ not_implemented("AArch64_UndefinedFault");
+}
+
+/** FUNCTION:aarch64/exceptions/traps/AArch64.WFxTrap */
+
+function AArch64_WFxTrap(target_el : bits(2), is_wfe : boolean) -> unit = {
+ not_implemented("AArch64_WFxTrap");
+}
+
+/** FUNCTION:aarch64/functions/aborts/AArch64.CreateFaultRecord */
+
+function AArch64_CreateFaultRecord(
+ faulttype : Fault, ipaddress : bits(48), level : uinteger, acctype : AccType,
+ write : boolean, extflag : bit, secondstage : boolean, s2fs1walk : boolean) -> FaultRecord = {
+ fault : FaultRecord = {
+ faulttype = faulttype;
+ domain = UNKNOWN : bits(4);
+ debugmoe = UNKNOWN : bits(4);
+ ipaddress = ipaddress;
+ level = level;
+ acctype = acctype;
+ write = write;
+ extflag = extflag;
+ secondstage = secondstage;
+ s2fs1walk = s2fs1walk;
+ };
+
+ fault;
+}
+
+/** FUNCTION:aarch64/functions/exclusive/AArch64.ExclusiveMonitorsPass */
+
+function AArch64_ExclusiveMonitorsPass(address : bits(64), size : uinteger) -> boolean = {
+ /*It is IMPLEMENTATION DEFINED whether the detection of memory aborts happens*/
+ /*before or after the check on the local Exclusive Monitor. As a result a failure*/
+ /*of the local monitor can occur on some implementations even if the memory*/
+ /*access would give an memory abort.*/
+
+ acctype : AccType = AccType_ATOMIC;
+ iswrite : boolean = true;
+ aligned : boolean = (address == Align(address, size));
+
+ if ~(aligned) then {
+ secondstage : boolean = false;
+ AArch64_Abort(address, AArch64_AlignmentFault(acctype, iswrite, secondstage));
+ };
+
+ passed : boolean = AArch64_IsExclusiveVA(address, ProcessorID(), size);
+ if ~(passed) then
+ /* return */ false
+ else {
+
+ memaddrdesc : AddressDescriptor =
+ AArch64_TranslateAddress(address, acctype, iswrite, aligned, size);
+
+ /*Check for aborts or debug exceptions*/
+ if IsFault(memaddrdesc) then
+ AArch64_Abort(address, memaddrdesc.fault);
+
+ passed = IsExclusiveLocal(memaddrdesc.paddress, ProcessorID(), size);
+
+ if passed then {
+ ClearExclusiveLocal(ProcessorID());
+ if (memaddrdesc.memattrs).shareable then
+ passed = IsExclusiveGlobal(memaddrdesc.paddress, ProcessorID(), size);
+ };
+
+ passed;
+}}
+
+/** FUNCTION:aarch64/functions/exclusive/AArch64.IsExclusiveVA */
+
+function AArch64_IsExclusiveVA(address : bits(64), processorid : integer, size : uinteger) -> boolean = {
+ info("The model does not implement the exclusive monitors explicitly.");
+ true;
+}
+
+/** FUNCTION:aarch64/functions/exclusive/AArch64.MarkExclusiveVA */
+
+val AArch64_MarkExclusiveVA : (bits(64), integer, uinteger) -> unit effect pure
+function AArch64_MarkExclusiveVA (address, processorid, size) = {
+ info("The model does not implement the exclusive monitors explicitly.");
+}
+
+/** FUNCTION:aarch64/functions/exclusive/AArch64.SetExclusiveMonitors */
+
+function AArch64_SetExclusiveMonitors(address : bits(64), size : uinteger) -> unit = {
+ acctype : AccType = AccType_ATOMIC;
+ iswrite : boolean = false;
+ aligned : boolean = (address != Align(address, size));
+
+ memaddrdesc : AddressDescriptor = AArch64_TranslateAddress(address, acctype, iswrite, aligned, size);
+
+ /* Check for aborts or debug exceptions */
+ if IsFault(memaddrdesc) then
+ /* return */ ()
+ else {
+
+ if (memaddrdesc.memattrs).shareable then
+ MarkExclusiveGlobal(memaddrdesc.paddress, ProcessorID(), size);
+
+ MarkExclusiveLocal(memaddrdesc.paddress, ProcessorID(), size);
+
+ AArch64_MarkExclusiveVA(address, ProcessorID(), size);
+}}
+
+/** FUNCTION:aarch64/functions/memory/AArch64.CheckAlignment */
+
+function AArch64_CheckAlignment(address : bits(64), size : uinteger,
+ acctype : AccType, iswrite : boolean) -> boolean = {
+ aligned : boolean = (address == Align(address, size));
+ A : bit = (SCTLR'()).A;
+
+ if ~(aligned) & (acctype == AccType_ATOMIC | acctype == AccType_ORDERED | A == 1) then {
+ secondstage = false;
+ AArch64_Abort(address, AArch64_AlignmentFault(acctype, iswrite, secondstage));
+ };
+
+ aligned;
+}
+
+/** FUNCTION:// AArch64.MemSingle[] - non-assignment (read) form */
+
+val AArch64_rMemSingle : forall 'N, 'N in {1,2,4,8,16}. (read_buffer_type, bits(64), atom('N), AccType, boolean, bool) -> read_buffer_type effect {rmem}
+function AArch64_rMemSingle (read_buffer, address, size, acctype, wasaligned, exclusive) = {
+ /*assert size IN {1, 2, 4, 8, 16};*/
+ assert((address == Align(address, size)), None);
+
+ /* ARM: AddressDescriptor memaddrdesc; */
+ value : bits('N*8) = 0;
+ iswrite : boolean = false;
+
+ /* MMU or MPU */
+ memaddrdesc : AddressDescriptor = AArch64_TranslateAddress(address, acctype, iswrite, wasaligned, size);
+
+ /* Check for aborts or debug exceptions */
+ if IsFault(memaddrdesc) then
+ AArch64_Abort(address, memaddrdesc.fault);
+
+ /* Memory array access */
+ _rMem(read_buffer, memaddrdesc, size, acctype, exclusive);
+}
+
+/** FUNCTION:// AArch64.MemSingle[] - assignment (write) form */
+
+val AArch64_wMemSingle : forall 'N, 'N in {1,2,4,8,16}. (write_buffer_type, bits(64), atom('N), AccType, boolean, bool, bits('N*8)) -> write_buffer_type effect pure
+function AArch64_wMemSingle (write_buffer, address, size, acctype, wasaligned, exclusive, value) = {
+ /*assert size IN {1, 2, 4, 8, 16};*/
+ assert((address == Align(address, size)), None);
+
+ /* ARM: AddressDescriptor memaddrdesc; */
+ iswrite : boolean = true;
+
+ /* MMU or MPU */
+ memaddrdesc : AddressDescriptor = AArch64_TranslateAddress(address, acctype, iswrite, wasaligned, size);
+
+ /* Check for aborts or debug exceptions */
+ if IsFault(memaddrdesc) then
+ AArch64_Abort(address, memaddrdesc.fault);
+
+ /* Effect on exclusives */
+ if (memaddrdesc.memattrs).shareable then
+ ClearExclusiveByAddress(memaddrdesc.paddress, ProcessorID(), size);
+
+ /* Memory array access */
+ _wMem(write_buffer, memaddrdesc, size, acctype, exclusive, value)
+}
+
+/** FUNCTION:CheckSPAlignment() */
+
+val CheckSPAlignment : unit -> unit effect {rreg}
+function CheckSPAlignment() = {
+ sp : bits(64) = rSP();
+ stack_align_check : bool = false; /* ARM: this is missing from ARM ARM */
+
+ if PSTATE_EL == EL0 then
+ stack_align_check = (SCTLR_EL1.SA0 != 0)
+ else
+ stack_align_check = ((SCTLR'()).SA != 0);
+
+ if stack_align_check & sp != Align(sp, 16) then
+ AArch64_SPAlignmentFault();
+}
+
+/** FUNCTION:// Mem[] - non-assignment (read) form */
+
+val rMem' : forall 'N, 'N in {1,2,4,8,16}. (read_buffer_type, bits(64),atom('N), AccType, bool) -> read_buffer_type effect {rmem}
+function rMem'(read_buffer, address, size, acctype, exclusive) =
+{
+ /* ARM: assert size IN {1, 2, 4, 8, 16}; */
+ read_buffer' : read_buffer_type = read_buffer;
+
+ i : uinteger = 0; /* ARM: uninitialized */
+ iswrite : boolean = false;
+
+ aligned : boolean = AArch64_CheckAlignment(address, size, acctype, iswrite);
+ atomic : boolean = ((aligned & ~(acctype == AccType_VEC | acctype == AccType_VECSTREAM)) | size == 1);
+
+ if ~(atomic) then {
+ assert((~(exclusive)), None); /* as far as I can tell this should never happen */
+
+ assert((size > 1), None);
+ if (~(exclusive)) then {
+ /*value[7..0] =*/read_buffer' = AArch64_rMemSingle(read_buffer', address, 1, acctype, aligned, false);
+
+ /* For subsequent bytes it is CONSTRAINED UNPREDICTABLE whether an unaligned Device memory */
+ /* access will generate an Alignment Fault, as to get this far means the first byte did */
+ /* not, so we must be changing to a new translation page. */
+ /* FIXME: ???
+ if ~(aligned) then {
+ c = ConstrainUnpredictable();
+ assert c IN {Constraint_FAULT, Constraint_NONE};
+ if c == Constraint_NONE then aligned = TRUE;
+ };*/
+
+ foreach (i from 1 to (size - 1)) {
+ /*value[(8*i+7)..(8*i)] =*/read_buffer' = AArch64_rMemSingle(read_buffer', address+i, 1, acctype, aligned, false);
+ }}} else
+ /*value =*/read_buffer' = AArch64_rMemSingle(read_buffer', address, size, acctype, aligned, exclusive);
+
+ /*if BigEndian() then
+ value = BigEndianReverse(value);
+ value;*/
+ read_buffer'
+}
+
+val rMem : forall 'N, 'N in {1,2,4,8,16}. (read_buffer_type, bits(64), atom('N), AccType) -> read_buffer_type effect {rmem}
+function rMem (read_buffer, address, size, acctype) =
+ rMem'(read_buffer, address, size, acctype, false)
+
+val rMem_exclusive : forall 'N, 'N in {1,2,4,8,16}. (read_buffer_type, bits(64), atom('N), AccType) -> read_buffer_type effect {rmem}
+function rMem_exclusive(read_buffer, address, size, acctype) =
+ rMem'(read_buffer, address, size, acctype, true)
+
+/** FUNCTION:// Mem[] - assignment (write) form */
+
+/* the 'exclusive' and return value are our addition for handling
+ store-exclusive, this function should only be called indirectly by one
+ of the functions that follow it.
+ returns true if the store-exclusive was successful. */
+val wMem' : forall 'N, 'N in {1,2,4,8,16}. (write_buffer_type, bits(64), atom('N), AccType, bits('N*8), bool) -> write_buffer_type
+function wMem' (write_buffer, address, size, acctype, value, exclusive) = {
+ write_buffer' : write_buffer_type = write_buffer;
+
+ /* sail doesn't allow assignment to function arguments */
+ value' : bits('N*8) = value;
+
+ i : uinteger = 0; /* ARM: uninitialized */
+ iswrite : boolean = true;
+
+ if BigEndian() then
+ value' = BigEndianReverse(value');
+ aligned : boolean = AArch64_CheckAlignment(address, size, acctype, iswrite);
+ atomic : boolean = ((aligned & ~(acctype == AccType_VEC | acctype == AccType_VECSTREAM)) | size == 1);
+
+ exclusiveSuccess : bool = false;
+ if ~(atomic) then {
+ assert((~(exclusive)), None); /* as far as I can tell this should never happen */
+
+ if (~(exclusive)) then {
+ assert((size > 1), None);
+ write_buffer' = AArch64_wMemSingle(write_buffer', address, 1, acctype, aligned, false, value'[7..0]);
+
+ /* For subsequent bytes it is CONSTRAINED UNPREDICTABLE whether an unaligned Device memory */
+ /* access will generate an Alignment Fault, as to get this far means the first byte did */
+ /* not, so we must be changing to a new translation page. */
+ /* FIXME:
+ if !aligned then
+ c = ConstrainUnpredictable();
+ assert c IN {Constraint_FAULT, Constraint_NONE};
+ if c == Constraint_NONE then aligned = TRUE;*/
+
+ foreach (i from 1 to (size - 1))
+ write_buffer' = AArch64_wMemSingle(write_buffer', address+i, 1, acctype, aligned, false, value'[(8*i+7)..(8*i)]);
+ }} else
+ write_buffer' = AArch64_wMemSingle(write_buffer', address, size, acctype, aligned, exclusive, value');
+
+ write_buffer'
+}
+
+val wMem : forall 'N, 'N in {1,2,4,8,16}. (write_buffer_type, bits(64), atom('N), AccType, bits('N*8)) -> write_buffer_type
+function wMem (write_buffer, address, size, acctype, value) =
+ wMem'(write_buffer, address, size, acctype, value, false)
+
+val wMem_exclusive : forall 'N, 'N in {1,2,4,8,16}. (write_buffer_type, bits(64), atom('N), AccType, bits('N*8)) -> buffer_type
+function wMem_exclusive(write_buffer, address, size, acctype, value) =
+ wMem'(write_buffer, address, size, acctype, value, true)
+
+/** FUNCTION:aarch64/functions/registers/AArch64.ResetGeneralRegisters */
+
+function unit AArch64_ResetGeneralRegisters() =
+{
+ foreach (i from 0 to 30)
+ wX(i) = (UNKNOWN : bits(64));
+}
+
+/** FUNCTION:aarch64/functions/registers/AArch64.ResetSIMDFPRegisters */
+
+function unit AArch64_ResetSIMDFPRegisters() =
+{
+ foreach (i from 0 to 31)
+ wV(i) = (UNKNOWN : bits(128));
+}
+
+/** FUNCTION:aarch64/functions/registers/AArch64.ResetSpecialRegisters */
+
+function unit AArch64_ResetSpecialRegisters() =
+{
+ /* AArch64 special registers */
+ SP_EL0 = (UNKNOWN : bits(64));
+ SP_EL1 = (UNKNOWN : bits(64));
+ SPSR_EL1 = (UNKNOWN : bits(32));
+ ELR_EL1 = (UNKNOWN : bits(64));
+ if HaveEL(EL2) then {
+ SP_EL2 = (UNKNOWN : bits(64));
+ SPSR_EL2 = (UNKNOWN : bits(32));
+ ELR_EL2 = (UNKNOWN : bits(64));
+ };
+ if HaveEL(EL3) then {
+ SP_EL3 = (UNKNOWN : bits(64));
+ SPSR_EL3 = (UNKNOWN : bits(32));
+ ELR_EL3 = (UNKNOWN : bits(64));
+ };
+
+ /* AArch32 special registers that are not architecturally mapped to AArch64 registers */
+ if HaveAArch32EL(EL1) then {
+ SPSR_fiq = (UNKNOWN : bits(32));
+ SPSR_irq = (UNKNOWN : bits(32));
+ SPSR_abt = (UNKNOWN : bits(32));
+ SPSR_und = (UNKNOWN : bits(32));
+ };
+
+ /* External debug special registers */
+ DLR_EL0 = (UNKNOWN : bits(64));
+ DSPSR_EL0 = (UNKNOWN : bits(32));
+}
+
+/** FUNCTION:aarch64/functions/registers/PC */
+
+val rPC : unit -> bits(64) effect {rreg}
+function rPC () = _PC
+
+/** FUNCTION:// SP[] - assignment form */
+
+val wSP : forall 'N, 'N in {32,64}. (unit, bits('N)) -> unit effect {rreg,wreg}
+function wSP ((), value) = {
+ /*assert width IN {32,64};*/
+ if PSTATE_SP == 0 then
+ SP_EL0 = ZeroExtend(value)
+ else
+ let pstate_el = PSTATE_EL in {
+ if pstate_el == EL0 then SP_EL0 = ZeroExtend(value)
+ else if pstate_el == EL1 then SP_EL1 = ZeroExtend(value)
+ else if pstate_el == EL2 then SP_EL2 = ZeroExtend(value)
+ else if pstate_el == EL3 then SP_EL3 = ZeroExtend(value)
+ else assert(false,None); ();
+ }
+}
+
+/** FUNCTION:// SP[] - non-assignment form */
+
+val rSP : unit -> bits('N) effect {rreg}
+function rSP () = {
+ /*assert width IN {8,16,32,64};*/
+ if PSTATE_SP == 0 then
+ mask(SP_EL0)
+ else
+ let pstate_el = PSTATE_EL in {
+ if pstate_el == EL0 then mask(SP_EL0)
+ else if pstate_el == EL1 then mask(SP_EL1)
+ else if pstate_el == EL2 then mask(SP_EL2)
+ else if pstate_el == EL3 then mask(SP_EL3)
+ else {assert(false,None); mask(SP_EL3)}
+ }
+}
+
+/** FUNCTION:// V[] - assignment form */
+
+val wV : forall 'N, 'N in {8,16,32,64,128}. (SIMD_index, bits('N)) -> unit effect {wreg}
+function wV (n, value) = {
+ /*assert n >= 0 && n <= 31;*/
+ /*assert width IN {8,16,32,64,128};*/
+ _V[n] = ZeroExtend(value);
+}
+
+/** FUNCTION:// V[] - non-assignment form */
+
+val rV: forall 'N, 'N in {8,16,32,64,128}. SIMD_index -> bits('N) effect {rreg}
+function rV (n) = mask(_V[n])
+
+
+/** FUNCTION:// Vpart[] - non-assignment form */
+
+val rVpart : forall 'N, 'N in {8,16,32,64,128}. (SIMD_index, range(0,1)) -> bits('N) effect {rreg}
+function rVpart (n,part) = {
+ if part == 0 then
+ mask(_V[n]) : bits('N)
+ else {
+ assert((length(0 : bits('N)) == 64), None);
+ ((_V[n])[127..64]) : bits(64);
+ }
+}
+
+/** FUNCTION:// Vpart[] - assignment form */
+
+val wVpart : forall 'N, 'N in {8,16,32,64,128}. (SIMD_index, range(0,1), bits('N)) -> unit effect {wreg}
+function wVpart(n, part, value) = {
+ if part == 0 then
+ _V[n] = ZeroExtend(value)
+ else {
+ assert((length(0 : bits('N)) == 64), None);
+ (_V[n])[127..64] = value;
+ }
+}
+
+/** FUNCTION:// X[] - assignment form */
+
+val wX : forall 'N, 'N in {32,64}. (reg_index, bits('N)) -> unit effect {wreg}
+function wX(n, value) = {
+ /*assert n >= 0 && n <= 31;*/
+ /*assert width IN {32,64};*/
+ if n != 31 then
+ _R[n] = ZeroExtend(value);
+}
+
+/** FUNCTION:// X[] - non-assignment form */
+
+val rX : forall 'N, 'N in {8,16,32,64}. reg_index -> bits('N) effect {rreg}
+function rX(n) = {
+ /*assert n >= 0 && n <= 31;*/
+ /*assert width IN {8,16,32,64};*/
+ if n != 31 then
+ mask(_R[n])
+ else
+ Zeros();
+}
+
+/** FUNCTION:bits(64) ELR[bits(2) el] */
+
+function rELR(el : bits(2)) -> bits(64) = {
+ r = 0 : bits(64); /* ARM: uninitialized */
+ if el == EL1 then r = ELR_EL1
+ else if el == EL2 then r = ELR_EL2
+ else if el == EL3 then r = ELR_EL3
+ else Unreachable();
+ r;
+}
+
+/** FUNCTION:bits(64) ELR[] */
+
+function rELR'() -> bits(64) =
+{
+ assert (PSTATE_EL != EL0, None);
+ rELR(PSTATE_EL);
+}
+
+/** FUNCTION:SCTLRType SCTLR[bits(2) regime] */
+
+val SCTLR : bits(2) -> SCTLR_type effect {rreg}
+function SCTLR (regime) = {
+ if regime == EL1 then SCTLR_EL1
+ else if regime == EL2 then SCTLR_EL2
+ else if regime == EL3 then SCTLR_EL3
+ else {assert(false,Some("SCTLR_type unreachable")); SCTLR_EL1} /* ARM: Unreachabe() */
+}
+
+/** FUNCTION:SCTLRType SCTLR[] */
+
+val SCTLR' : unit -> SCTLR_type effect{rreg}
+function SCTLR' () = SCTLR(S1TranslationRegime())
+
+/** FUNCTION:aarch64/functions/system/AArch64.CheckUnallocatedSystemAccess */
+
+/* return true if the access is not allowed */
+function AArch64_CheckUnallocatedSystemAccess (op0 : bits(2), op1 : bits(3), crn : bits(4),
+ crm : bits(4), op2 : bits(3), read : bit) -> boolean =
+{
+ match (op0,op1,crn,crm,op2, read) {
+ (0b00,0b000,0b0100,_,0b101, _) => PSTATE_EL < EL1 /* SPSel */,
+ (0b00,0b011,0b0100,_,0b110, _) => false, /* DAIFSet */ /* TODO: EL0 Config-RW ??? */
+ (0b00,0b011,0b0100,_,0b111, _) => false, /* DAIFClr */ /* TODO: EL0 Config-RW ??? */
+
+ /* follow the "Usage constraints" of each register */
+ (0b11,0b011,0b0100,0b0010,0b000, _) => false, /* NZCV */
+ (0b11,0b011,0b0100,0b0010,0b001, _) => false /* DAIF */ /* TODO: EL0 Config-RW ??? */
+/* (0b11,0b000,0b0001,0b0000,0b001, _) => PSTATE_EL < EL1 /* ACTLR_EL1 */ */
+ }
+}
+
+/** FUNCTION:aarch64/functions/system/CheckSystemAccess */
+
+function CheckSystemAccess (op0 : bits(2), op1 : bits(3), crn : bits(4), crm : bits(4),
+ op2 : bits(3), rt : bits(5), read : bit) -> unit =
+{
+ /*Checks if an AArch64 MSR/MRS/SYS instruction is UNALLOCATED or trapped at the current exception*/
+ /*level, security state and configuration, based on the opcode's encoding.*/
+ unallocated : boolean = false;
+ need_secure : boolean = false;
+ min_EL : bits(2) = 0; /* ARM: uninitialized */
+
+ /*Check for traps by HCR_EL2.TIDCP*/
+ /* TODO: uncomment when implementing traps
+ if HaveEL(EL2) & ~(IsSecure()) & HCR_EL2.TIDCP == 1 & op0[0] == 1 & (switch crn {[1,_,1,1] -> true case _ => false}) then {
+ /*At Non-secure EL0, it is IMPLEMENTATION_DEFINED whether attempts to execute system control*/
+ /*register access instructions with reserved encodings are trapped to EL2 or UNDEFINED*/
+ if PSTATE_EL == EL0 /* FIXME: & boolean IMPLEMENTATION_DEFINED "Reserved Control Space EL0 Trapped" */ then
+ AArch64_SystemRegisterTrap(EL2, op0, op2, op1, crn, rt, crm, read)
+ else if PSTATE.EL == EL1 then
+ AArch64_SystemRegisterTrap(EL2, op0, op2, op1, crn, rt, crm, read);
+ };*/
+
+ /*Check for unallocated encodings*/
+ match op1 {
+ (0b00@[_]) =>
+ min_EL = EL1,
+ 0b010 =>
+ min_EL = EL1,
+ 0b011 =>
+ min_EL = EL0,
+ 0b100 =>
+ min_EL = EL2,
+ 0b101 =>
+ UnallocatedEncoding(),
+ 0b110 =>
+ min_EL = EL3,
+ 0b111 => {
+ min_EL = EL1;
+ need_secure = true;
+ }
+ };
+ if PSTATE_EL < min_EL then /* ARM: UInt */
+ UnallocatedEncoding()
+ else if need_secure & ~(IsSecure()) then
+ UnallocatedEncoding()
+ else if AArch64_CheckUnallocatedSystemAccess(op0, op1, crn, crm, op2, read) then
+ UnallocatedEncoding();
+ /*Check for traps on accesses to SIMD or floating-point registers*/
+ /* TODO: uncomment when implementing SIMD/FP
+ let AArch64 : take_trap, target_el.CheckAdvSIMDFPSystemRegisterTraps(op0, op1, crn, crm, op2) in {
+ if take_trap then
+ AArch64_AdvSIMDFPAccessTrap(target_el);
+ };*/
+
+ /*Check for traps on access to all other system registers*/
+ /* TODO: uncomment when implementing traps
+ let AArch64_CheckSystemRegisterTraps : take_trap, target_el(op0, op1, crn, crm, op2, read) in {
+ if take_trap then
+ AArch64_SystemRegisterTrap(target_el, op0, op2, op1, crn, rt, crm, read);
+ };*/
+}
+
+/** FUNCTION:aarch64/functions/system/SysOp_R */
+
+val SysOp_R : (uinteger, uinteger, uinteger, uinteger, uinteger) -> bits(64)
+function SysOp_R(op0, op1, crn, crm, op2) = {
+ not_implemented("SysOp_R");
+ 0;
+}
+
+/** FUNCTION:aarch64/functions/system/SysOp_W */
+
+val SysOp_W : (uinteger, uinteger, uinteger, uinteger, uinteger, bits(64)) -> unit
+function unit SysOp_W(op0, op1, crn, crm, op2, _val) = {
+ not_implemented("SysOp_W");
+}
+
+/** FUNCTION:bits(64) System_Get(integer op0, integer op1, integer crn, integer crm, integer op2); */
+
+val System_Get : (uinteger, uinteger, uinteger, uinteger, uinteger) -> bits(64)
+function System_Get(op0, op1, crn, crm, op2) -> bits(64) = {
+ match (op0,op1,crn,crm,op2) {
+ (3,3,4,2,0) => ZeroExtend(NZCV),
+ (3,3,4,2,1) => ZeroExtend(DAIF),
+ (3, 3, 13, 0, 2) => TPIDR_EL0
+ /* TODO FIXME: higher EL TPIDRs */
+
+/* (3,0,1,0,1) => ZeroExtend(ACTLR_EL1) */
+ }
+}
+
+/** FUNCTION:System_Put(integer op0, integer op1, integer crn, integer crm, integer op2, bits(64) val); */
+
+val System_Put : (uinteger, uinteger, uinteger, uinteger, uinteger, bits(64)) -> unit effect {wreg}
+function System_Put(op0, op1, crn, crm, op2, _val) = {
+ match (op0,op1,crn,crm,op2) {
+ (3,3,4,2,0) => NZCV = _val[31..0],
+ (3,3,4,2,1) => DAIF = _val[31..0],
+ (3,3,13,0,2) => TPIDR_EL0 = _val[63..0]
+ /* TODO FIXME: higher EL TPIDRs */
+
+/* (3,0,1,0,1) => ACTLR_EL1 = _val[31..0] */
+ }
+}
+
+/** FUNCTION:aarch64/instrs/branch/eret/AArch64.ExceptionReturn */
+
+function unit AArch64_ExceptionReturn(new_pc : bits(64), spsr : bits(32)) = {
+ not_implemented("AArch64_ExceptionReturn");
+}
+
+/** ENUMERATE:aarch64/instrs/countop/CountOp */
+/** FUNCTION:ExtendType DecodeRegExtend(bits(3) op) */
+
+function ExtendType DecodeRegExtend (op : bits(3)) = {
+ match op {
+ 0b000 => ExtendType_UXTB,
+ 0b001 => ExtendType_UXTH,
+ 0b010 => ExtendType_UXTW,
+ 0b011 => ExtendType_UXTX,
+ 0b100 => ExtendType_SXTB,
+ 0b101 => ExtendType_SXTH,
+ 0b110 => ExtendType_SXTW,
+ 0b111 => ExtendType_SXTX
+ }
+}
+
+/** FUNCTION:aarch64/instrs/extendreg/ExtendReg */
+
+val ExtendReg : forall 'N 'S, 'N in {8,16,32,64} & 'S >= 0 & 'S <= 4.
+ (implicit('N), reg_index, ExtendType, atom('S)) -> bits('N) effect {rreg}
+function ExtendReg (_reg, etype, shift) =
+{
+ /*assert( shift >= 0 & shift <= 4 );*/
+ /* _val */ rX : bits('N) = (_reg);
+ _unsigned : boolean = false;
+ len : uinteger = 0;
+
+ match etype {
+ ExtendType_SXTB => { _unsigned = false; len = 8 },
+ ExtendType_SXTH => { _unsigned = false; len = 16},
+ ExtendType_SXTW => { _unsigned = false; len = 32},
+ ExtendType_SXTX => { _unsigned = false; len = 64},
+ ExtendType_UXTB => { _unsigned = true; len = 8 },
+ ExtendType_UXTH => { _unsigned = true; len = 16},
+ ExtendType_UXTW => { _unsigned = true; len = 32},
+ ExtendType_UXTX => { _unsigned = true; len = 64}
+ };
+
+ len = uMin(len, length(_val) - shift);
+ Extend((_val[(len - 1)..0]) @ (Zeros() : bits('S)), _unsigned)
+}
+
+/** ENUMERATE:aarch64/instrs/extendreg/ExtendType */
+/** ENUMERATE:aarch64/instrs/integer/arithmetic/rev/revop/RevOp */
+/** FUNCTION:(bits(M), bits(M)) DecodeBitMasks (bit immN, bits(6) imms, bits(6) immr, boolean immediate) */
+
+val DecodeBitMasks : forall 'M 'E, 'M >= 0 & 'E in {2,4,8,16,32,64}. (implicit('M),bit,bits(6),bits(6),boolean) -> (bits('M),bits('M)) effect {escape}
+function DecodeBitMasks(immN, imms, immr, immediate) = {
+ let M = (length(0 : bits('M))) in {
+/* ARM: (bits('M)) tmask = 0; /* ARM: uninitialized */ */
+/* ARM: (bits('M)) wmask = 0; /* ARM: uninitialized */ */
+ levels : bits(6) = 0; /* ARM: uninitialized */
+
+ /* Compute log2 of element size */
+ /* 2^len must be in range [2, 'M] */
+ len : range(0,6) = match HighestSetBit([immN]@(NOT(imms))) {
+ None => { assert (false,Some("DecodeBitMasks: HighestSetBit returned None")); 0; },
+ (Some(c)) => c
+ };
+ if len < 1 then ReservedValue();
+ assert((M >= lsl(1, len)),None);
+
+ /* Determine S, R and S - R parameters */
+ levels = ZeroExtend(0b1 ^^ len);
+
+ /* For logical immediates an all-ones value of S is reserved */
+ /* since it would generate a useless all-ones result (many times) */
+ if immediate & ((imms & levels) == levels) then
+ ReservedValue();
+
+ S : bits(6) = (imms & levels);
+ R : bits(6) = (immr & levels);
+ diff : bits(6) = S - R; /* 6-bit subtract with borrow */
+
+ esize : atom('E) = lsl(1, len);
+ d : bits(6) = diff[(len - 1)..0];
+ welem : bits('E) = ZeroExtend(0b1 ^^ (S + 1));
+ telem : bits('E) = ZeroExtend(0b1 ^^ (d + 1));
+ wmask = Replicate(ROR(welem, R));
+ tmask = Replicate(telem);
+ (wmask, tmask);
+}}
+
+/** ENUMERATE:aarch64/instrs/integer/ins-ext/insert/movewide/movewideop/MoveWideOp */
+/** FUNCTION:ShiftType DecodeShift(bits(2) op) */
+
+function ShiftType DecodeShift(op : bits(2)) = op : range(0,4)
+
+/** FUNCTION:bits(N) ShiftReg(integer reg, ShiftType type, integer amount) */
+
+val ShiftReg : forall 'N, 'N >= 0. (implicit('N), reg_index, ShiftType, nat) -> bits('N) effect {rreg}
+function ShiftReg(_reg, stype, amount) = {
+ result : bits('N) = rX(_reg);
+ match stype {
+ ShiftType_LSL => result = LSL(result, amount),
+ ShiftType_LSR => result = LSR(result, amount),
+ ShiftType_ASR => result = ASR(result, amount),
+ ShiftType_ROR => result = ROR(result, amount)
+ };
+ result;
+}
+
+/** ENUMERATE:aarch64/instrs/integer/shiftreg/ShiftType */
+/** ENUMERATE:aarch64/instrs/logicalop/LogicalOp */
+/** ENUMERATE:aarch64/instrs/memory/memop/MemOp */
+/** FUNCTION:aarch64/instrs/memory/prefetch/Prefetch */
+
+function unit Prefetch(address : bits(64), prfop : bits(5)) = {
+ hint : PrefetchHint = 0;
+ target : uinteger = 0;
+ stream : boolean = 0;
+
+ returnv : bool = false;
+ match prfop[4..3] {
+ 0b00 => hint = Prefetch_READ, /* PLD: prefetch for load */
+ 0b01 => hint = Prefetch_EXEC, /* PLI: preload instructions */
+ 0b10 => hint = Prefetch_WRITE, /* PST: prepare for store */
+ 0b11 => returnv = true /* unallocated hint */
+ };
+ if ~(returnv) then {
+ target = prfop[2..1]; /* target cache level */
+ stream = (prfop[0] != 0); /* streaming (non-temporal) */
+ Hint_Prefetch(address, hint, target, stream);
+}}
+
+/** ENUMERATE:aarch64/instrs/system/barriers/barrierop/MemBarrierOp */
+/** ENUMERATE:aarch64/instrs/system/hints/syshintop/SystemHintOp */
+/** ENUMERATE:aarch64/instrs/system/register/cpsr/pstatefield/PSTATEField */
+/** FUNCTION:aarch64/translation/faults/AArch64.AlignmentFault */
+
+function FaultRecord AArch64_AlignmentFault(acctype : AccType, iswrite : boolean, secondstage : boolean) = {
+ ipaddress : bits(48) = UNKNOWN;
+ level : uinteger = UNKNOWN;
+ extflag : bit = UNKNOWN;
+ s2fs1walk : boolean = UNKNOWN;
+
+ AArch64_CreateFaultRecord(Fault_Alignment, ipaddress, level, acctype, iswrite,
+ extflag, secondstage, s2fs1walk);
+}
+
+/** FUNCTION:aarch64/translation/faults/AArch64.NoFault */
+
+function FaultRecord AArch64_NoFault() = {
+ ipaddress : bits(48) = UNKNOWN;
+ level : uinteger = UNKNOWN;
+ acctype : AccType = AccType_NORMAL;
+ iswrite : boolean = UNKNOWN;
+ extflag : bit = UNKNOWN;
+ secondstage : boolean = false;
+ s2fs1walk : boolean = false;
+
+ AArch64_CreateFaultRecord(Fault_None, ipaddress, level, acctype, iswrite,
+ extflag, secondstage, s2fs1walk);
+}
+
+/** FUNCTION:aarch64/translation/translation/AArch64.TranslateAddress */
+
+function AArch64_TranslateAddress
+ (vaddress : bits(64), acctype : AccType, iswrite : boolean,
+ wasaligned : boolean, size : uinteger) -> AddressDescriptor = {
+ info("Translation is not implemented, return same address as the virtual (no fault, normal, shareable, non-secure).");
+ result : AddressDescriptor = {
+ fault = AArch64_NoFault();
+ memattrs = {MA_type = MemType_Normal; shareable = true};
+ paddress = {physicaladdress = vaddress; NS = 1};
+ };
+ /* ARM: uncomment when implementing TLB and delete the code above
+ (AddressDescriptor) result = AArch64_FullTranslate(vaddress, acctype, iswrite, wasaligned, size);
+
+ if ~(acctype == AccType_PTW | acctype == AccType_IC | acctype == AccType_AT) & ~(IsFault(result)) then
+ result.fault = AArch64_CheckDebug(vaddress, acctype, iswrite, size);
+ */
+
+ result;
+}
+
diff --git a/aarch64_small/armV8_A64_special_purpose_regs.sail b/aarch64_small/armV8_A64_special_purpose_regs.sail
new file mode 100644
index 00000000..73eb54fc
--- /dev/null
+++ b/aarch64_small/armV8_A64_special_purpose_regs.sail
@@ -0,0 +1,102 @@
+/*========================================================================*/
+/* */
+/* Copyright (c) 2015-2017 Shaked Flur */
+/* Copyright (c) 2015-2017 Kathyrn Gray */
+/* All rights reserved. */
+/* */
+/* This software was developed by the University of Cambridge Computer */
+/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */
+/* (REMS) project, funded by EPSRC grant EP/K008528/1. */
+/* */
+/* 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. */
+/*========================================================================*/
+
+bitfield CurrentEL_type : bits(32) =
+{
+ /*RES0 : 31..4,*/
+ EL : 3..2,
+ /*RES0 : 1..0,*/
+}
+register CurrentEL : CurrentEL_type /* Current Exception Level */
+
+bitfield DAIF_type : bits(32) =
+{
+ /*RES0 : 31..10,*/
+ D : 9,
+ A : 8,
+ I : 7,
+ F : 6,
+ /*RES0 : 5..0,*/
+}
+register DAIF : DAIF_type /* Interrupt Mask Bits */
+
+bitfield NZCV_type : bits(32) =
+{
+ N : 31,
+ Z : 30,
+ C : 29,
+ V : 28,
+ /*RES0 : 27..0,*/
+}
+register NZCV : NZCV_type /* Condition Flags */
+
+register SP_EL0 : bits(64) /* Stack Pointer (EL0) */
+register SP_EL1 : bits(64) /* Stack Pointer (EL1) */
+register SP_EL2 : bits(64) /* Stack Pointer (EL2) */
+register SP_EL3 : bits(64) /* Stack Pointer (EL3) */
+
+bitfield SPSel_type : bits(32) =
+{
+ /*RES0 : 31..1,*/
+ SP : 0,
+}
+register SPSel : SPSel_type /* Stack Pointer Select */
+
+bitfield SPSR_type : bits(32) =
+{
+ N : 31,
+ Z : 30,
+ C : 29,
+ V : 28,
+ /*RES0 : 27..22,*/
+ SS : 21,
+ IL : 20,
+ /*19..10 : RES0*/
+ E : 9,
+ A : 8,
+ I : 7,
+ F : 6,
+ /*RES0 : 5,*/
+ M4 : 4,
+ M3_0 : 3..0,
+}
+register SPSR_EL1 : SPSR_type /* Saved Program Status Register (EL1) */
+register SPSR_EL2 : SPSR_type /* Saved Program Status Register (EL2) */
+register SPSR_EL3 : SPSR_type /* Saved Program Status Register (EL3) */
+
+
+register ELR_EL1 : bits(64) /* Exception Link Register (EL1) */
+register ELR_EL2 : bits(64) /* Exception Link Register (EL2) */
+register ELR_EL3 : bits(64) /* Exception Link Register (EL3) */
+
diff --git a/aarch64_small/armV8_A64_sys_regs.sail b/aarch64_small/armV8_A64_sys_regs.sail
new file mode 100644
index 00000000..b051c87d
--- /dev/null
+++ b/aarch64_small/armV8_A64_sys_regs.sail
@@ -0,0 +1,292 @@
+/*========================================================================*/
+/* */
+/* Copyright (c) 2015-2017 Shaked Flur */
+/* Copyright (c) 2015-2017 Kathyrn Gray */
+/* All rights reserved. */
+/* */
+/* This software was developed by the University of Cambridge Computer */
+/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */
+/* (REMS) project, funded by EPSRC grant EP/K008528/1. */
+/* */
+/* 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. */
+/*========================================================================*/
+
+/*************************************************************************/
+/* General system control registers */
+
+
+bitfield HCR_type : bits(64) =
+{
+ /*RES0 : 63..34,*/
+ ID : 33,
+ CD : 32,
+ RW : 31,
+ TRVM : 30,
+ HCD : 29,
+ TDZ : 28,
+ TGE : 27,
+ TVM : 26,
+ TTLB : 25,
+ TPU : 24,
+ TPC : 23,
+ TSW : 22,
+ TACR : 21,
+ TIDCP : 20,
+ TSC : 19,
+ TID3 : 18,
+ TID2 : 17,
+ TID1 : 16,
+ TID0 : 15,
+ TWE : 14,
+ TWI : 13,
+ DC : 12,
+ BSU : 11..10,
+ FB : 9,
+ VSE : 8,
+ VI : 7,
+ VF : 6,
+ AMO : 5,
+ IMO : 4,
+ FMO : 3,
+ PTW : 2,
+ SWIO : 1,
+ VM : 0,
+}
+register HCR_EL2 : HCR_type /* Hypervisor Configuration Register */
+
+
+bitfield ID_AA64MMFR0_type : bits(64) =
+{
+ /*RES0 : 63..32,*/
+ TGran4 : 31..28,
+ TGran64 : 27..24,
+ TGran16 : 23..20,
+ BigEndEL0 : 19..16,
+ SNSMem : 15..12,
+ BigEnd : 11..8,
+ ASIDBits : 7..4,
+ PARange : 3..0,
+}
+register ID_AA64MMFR0_EL1 : ID_AA64MMFR0_type /* AArch64 Memory Model Feature Register 0 */
+
+register RVBAR_EL1 : bits(64) /* Reset Vector Base Address Register (if EL2 and EL3 not implemented) */
+register RVBAR_EL2 : bits(64) /* Reset Vector Base Address Register (if EL3 not implemented) */
+register RVBAR_EL3 : bits(64) /* Reset Vector Base Address Register (if EL3 implemented) */
+
+bitfield SCRType : bits(32) =
+{
+ /*RES0 : 31..14,*/
+ TWE : 13,
+ TWI : 12,
+ ST : 11,
+ RW : 10,
+ SIF : 9,
+ HCE : 8,
+ SMD : 7,
+ /*RES0 : 6,*/
+ /*RES1 : 5..4,*/
+ EA : 3,
+ FIQ : 2,
+ IRQ : 1,
+ NS : 0,
+}
+register SCR_EL3 : SCRType /* Secure Configuration Register */
+
+bitfield SCTLR_EL1_type : bits(32) =
+{
+ /*RES0 : 31..30,*/
+ /*RES1 : 29..28,*/
+ /*RES0 : 27,*/
+ UCI : 26,
+ EE : 25,
+ E0E : 24,
+ /*RES1 : 23..22,*/
+ /*RES0 : 21,*/
+ /*RES1 : 20,*/
+ WXN : 19,
+ nTWE : 18,
+ /*RES0 : 17,*/
+ nTWI : 16,
+ UCT : 15,
+ DZE : 14,
+ /*RES0 : 13,*/
+ I : 12,
+ /*RES1 : 11,*/
+ /*RES0 : 10,*/
+ UMA : 9,
+ SED : 8,
+ ITD : 7,
+ /*RES0 : 6,*/
+ CP15BEN : 5,
+ SA0 : 4,
+ SA : 3,
+ C : 2,
+ A : 1,
+ M : 0,
+}
+register SCTLR_EL1 : SCTLR_EL1_type /* System Control Register (EL1) */
+
+bitfield SCTLR_type : bits(32) =
+{
+ /*RES0 : 31..30,*/
+ /*RES1 : 29..28,*/
+ /*RES0 : 27..26,*/
+ EE : 25,
+ /*RES0 : 24,*/
+ /*RES1 : 23..22,*/
+ /*RES0 : 21..20,*/
+ WXN : 19,
+ /*RES1 : 18,*/
+ /*RES0 : 17,*/
+ /*RES1 : 16,*/
+ /*RES0 : 15..13,*/
+ I : 12,
+ /*RES1 : 11,*/
+ /*RES0 : 10..6,*/
+ /*RES1 : 5..4,*/
+ SA : 3,
+ C : 2,
+ A : 1,
+ M : 0,
+}
+register SCTLR_EL2 : SCTLR_type /* System Control Register (EL2) */
+register SCTLR_EL3 : SCTLR_type /* System Control Register (EL3) */
+
+bitfield TCR_EL1_type : bits(64) =
+{
+ /*RES0 : 63..39,*/
+ TBI1 : 38,
+ TBI0 : 37,
+ AS : 36,
+ /*RES0 : 35,*/
+ IPS : 34..32,
+ TG1 : 31..30,
+ SH1 : 29..28,
+ ORGN1 : 27..26,
+ IRGN1 : 25..24,
+ EPD1 : 23,
+ A1 : 22,
+ T1SZ : 21..16,
+ TG0 : 15..14,
+ SH0 : 13..12,
+ ORGN0 : 11..10,
+ IRGN0 : 9..8,
+ EPD0 : 7,
+ /*RES0 : 6,*/
+ T0SZ : 5..0,
+}
+register TCR_EL1 : TCR_EL1_type /* Translation Control Register (EL1) */
+
+bitfield TCR_type : bits(32) =
+{
+ /*RES1 : 31,*/
+ /*RES0 : 30..24,*/
+ /*RES1 : 23,*/
+ /*RES0 : 22..21,*/
+ TBI : 20,
+ /*RES0 : 19,*/
+ PS : 18..16,
+ TG0 : 15..14,
+ SH0 : 13..12,
+ ORGN0 : 11..10,
+ IRGN0 : 9..8,
+ /*RES0 : 7..6,*/
+ T0SZ : 5..0,
+}
+register TCR_EL2 : TCR_type /* Translation Control Register (EL2) */
+register TCR_EL3 : TCR_type /* Translation Control Register (EL3) */
+
+register TPIDR_EL0 : bits(64) /* EL0 Read/Write Software Thread ID Register */
+register TPIDR_EL1 : bits(64) /* EL1 Read/Write Software Thread ID Register */
+register TPIDR_EL2 : bits(64) /* EL2 Read/Write Software Thread ID Register */
+register TPIDR_EL3 : bits(64) /* EL3 Read/Write Software Thread ID Register */
+
+/*************************************************************************/
+/* Debug registers */
+
+bitfield DBGPRCR_type : bits(32) =
+{
+ /*RES0 : 31..1,*/
+ CORENPDRQ : 0,
+}
+register DBGPRCR_EL1 : DBGPRCR_type /* Debug Power Control Register */
+
+bitfield OSDLR_type : bits(32) =
+{
+ /*RES0 : 31..1,*/
+ DLK : 0,
+}
+register OSDLR_EL1 : OSDLR_type /* OS Double Lock Register */
+
+/*************************************************************************/
+/* Performance Monitors registers */
+
+/*************************************************************************/
+/* Generic Timer registers */
+
+/*************************************************************************/
+/* Generic Interrupt Controller CPU interface registers */
+
+/*************************************************************************/
+/* External Debug Register */
+
+bitfield EDSCR_type : bits(32) =
+{
+ /*RES0 : 31,*/
+ RXfull : 30,
+ TXfull : 29,
+ ITO : 28,
+ RXO : 27,
+ TXU : 26,
+ PipeAdv : 25,
+ ITE : 24,
+ INTdis : 23..22,
+ TDA : 21,
+ MA : 20,
+ /*RES0 : 19,*/
+ NS : 18,
+ /*RES0 : 17,*/
+ SDD : 16,
+ /*RES0 : 15,*/
+ HDE : 14,
+ RW : 13..10,
+ EL : 9..8,
+ A : 7,
+ ERR : 6,
+ STATUS : 5..0,
+}
+register EDSCR : EDSCR_type /* External Debug Status and Control Register */
+
+/* transactional memory, not part of the official spec */
+bitfield TXIDR_EL0_type : bits(64) =
+{
+ /*RES0 : 63..8,*/
+ DEPTH : 7..0,
+}
+register TXIDR_EL0 : TXIDR_EL0_type /* Transaction ID Register */
+
+
+val AArch64_ResetControlRegisters : boolean -> unit effect pure
+function AArch64_ResetControlRegisters(cold_reset) = ()
+
diff --git a/aarch64_small/armV8_common_lib.sail b/aarch64_small/armV8_common_lib.sail
new file mode 100644
index 00000000..a7e14c62
--- /dev/null
+++ b/aarch64_small/armV8_common_lib.sail
@@ -0,0 +1,1037 @@
+/*========================================================================*/
+/* */
+/* Copyright (c) 2015-2017 Shaked Flur */
+/* Copyright (c) 2015-2017 Kathyrn Gray */
+/* All rights reserved. */
+/* */
+/* This software was developed by the University of Cambridge Computer */
+/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */
+/* (REMS) project, funded by EPSRC grant EP/K008528/1. */
+/* */
+/* 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. */
+/*========================================================================*/
+
+/** FUNCTION:shared/debug/DoubleLockStatus/DoubleLockStatus */
+
+function boolean DoubleLockStatus() =
+{
+ if ELUsingAArch32(EL1) then
+ (DBGOSDLR.DLK == 1 & DBGPRCR.CORENPDRQ == 0 & ~(Halted()))
+ else
+ (OSDLR_EL1.DLK == 1 & DBGPRCR_EL1.CORENPDRQ == 0 & ~(Halted()));
+}
+
+/** FUNCTION:shared/debug/authentication/Debug_authentication */
+
+/* TODO: these are external signals */
+
+enum signalValue = {LOw, HIGH}
+
+function signalValue signalDBGEN () = not_implemented_extern("signalDBGEN")
+function signalValue signelNIDEN () = not_implemented_extern("signalNIDEN")
+function signalValue signalSPIDEN () = not_implemented_extern("signalSPIDEN")
+function signalValue signalDPNIDEN () = not_implemented_extern("signalSPNIDEN")
+
+/** FUNCTION:shared/debug/authentication/ExternalInvasiveDebugEnabled */
+
+function boolean ExternalInvasiveDebugEnabled() =
+{
+ /* In the recommended interface, ExternalInvasiveDebugEnabled returns the state of the DBGEN */
+ /* signal. */
+ signalDBGEN() == HIGH;
+}
+
+/** FUNCTION:shared/debug/authentication/ExternalSecureInvasiveDebugEnabled */
+
+function boolean ExternalSecureInvasiveDebugEnabled() =
+{
+ /* In the recommended interface, ExternalSecureInvasiveDebugEnabled returns the state of the */
+ /* (DBGEN AND SPIDEN) signal. */
+ /* CoreSight allows asserting SPIDEN without also asserting DBGEN, but this is not recommended. */
+ if ~(HaveEL(EL3)) & ~(IsSecure()) then false
+ else {
+ (ExternalInvasiveDebugEnabled() & signalSPIDEN() == HIGH);
+}}
+
+/** FUNCTION:shared/debug/halting/DCPSInstruction */
+
+function unit DCPSInstruction(target_el : bits(2)) =
+{
+ not_implemented("DCPSInstruction");
+}
+
+/** FUNCTION:shared/debug/halting/DRPSInstruction */
+
+function unit DRPSInstruction() =
+{
+ not_implemented("DRPSInstruction");
+}
+
+/** TYPE:shared/debug/halting/DebugHalt */
+
+let DebugHalt_Breakpoint = 0b000111
+let DebugHalt_EDBGRQ = 0b010011
+let DebugHalt_Step_Normal = 0b011011
+let DebugHalt_Step_Exclusive = 0b011111
+let DebugHalt_OSUnlockCatch = 0b100011
+let DebugHalt_ResetCatch = 0b100111
+let DebugHalt_Watchpoint = 0b101011
+let DebugHalt_HaltInstruction = 0b101111
+let DebugHalt_SoftwareAccess = 0b110011
+let DebugHalt_ExceptionCatch = 0b110111
+let DebugHalt_Step_NoSyndrome = 0b111011
+
+/** FUNCTION:shared/debug/halting/Halt */
+
+function unit Halt(reason : bits(6)) =
+{
+ not_implemented("Halt");
+}
+
+/** FUNCTION:shared/debug/halting/Halted */
+
+function boolean Halted() =
+{
+ ~(EDSCR.STATUS == 0b000001 | EDSCR.STATUS == 0b000010); /* Halted */
+}
+
+/** FUNCTION:shared/debug/halting/HaltingAllowed */
+
+function boolean HaltingAllowed() =
+{
+ if Halted() | DoubleLockStatus() then
+ false
+ else if IsSecure() then
+ ExternalSecureInvasiveDebugEnabled()
+ else
+ ExternalInvasiveDebugEnabled();
+}
+
+/** FUNCTION:shared/exceptions/traps/ReservedValue */
+
+function unit ReservedValue() =
+{
+ /* ARM: uncomment when adding aarch32
+ if UsingAArch32() && !AArch32.GeneralExceptionsToAArch64() then
+ AArch32.TakeUndefInstrException()
+ else*/
+ AArch64_UndefinedFault();
+}
+
+/** FUNCTION:shared/exceptions/traps/UnallocatedEncoding */
+
+function unit UnallocatedEncoding() =
+{
+ /* If the unallocated encoding is an AArch32 CP10 or CP11 instruction, FPEXC.DEX must be written */
+ /* to zero. This is omitted from this code. */
+ /* ARM: uncomment whenimplementing aarch32
+ if UsingAArch32() && !AArch32.GeneralExceptionsToAArch64() then
+ AArch32.TakeUndefInstrException();
+ else*/
+ AArch64_UndefinedFault();
+}
+
+/** FUNCTION:shared/functions/aborts/IsFault */
+
+function boolean IsFault(addrdesc : AddressDescriptor) =
+{
+ (addrdesc.fault).faulttype != Fault_None;
+}
+
+/** FUNCTION:shared/functions/common/ASR */
+
+val ASR : forall 'N, 'N >= 0. (bits('N), uinteger) -> bits('N)
+function ASR (x, shift) =
+{
+ /*assert shift >= 0;*/
+ result : bits('N) = 0;
+ if shift == 0 then
+ result = x
+ else
+ let (result', _) = ASR_C (x, shift) in { result = result' };
+ result;
+}
+
+/** FUNCTION:shared/functions/common/ASR_C */
+
+val ASR_C : forall 'N 'S, 'N >= 0 & 'S >= 1. (bits('N), atom('S)) -> (bits('N), bit)
+function ASR_C (x, shift) =
+{
+ /*assert shift > 0;*/
+ extended_x : bits('S+'N) = SignExtend(x);
+ result : bits('N) = extended_x[(shift + length(x) - 1)..shift];
+ carry_out : bit = extended_x[shift - 1];
+ (result, carry_out);
+}
+
+/** FUNCTION:integer Align(integer x, integer y) */
+
+function uinteger Align'(x : uinteger, y : uinteger) =
+ y * (quot (x,y))
+
+/** FUNCTION:bits(N) Align(bits(N) x, integer y) */
+
+val Align : forall 'N, 'N >= 0. (bits('N), uinteger) -> bits('N)
+function Align (x, y) =
+ Align'(UInt(x), y) : (bits('N))
+
+/** FUNCTION:integer CountLeadingSignBits(bits(N) x) */
+
+val CountLeadingSignBits : forall 'N, 'N >= 0. bits('N) -> range(0,'N)
+function CountLeadingSignBits(x) =
+ CountLeadingZeroBits(x[(length(x) - 1)..1] ^ x[(length(x) - 2)..0])
+
+/** FUNCTION:integer CountLeadingZeroBits(bits(N) x) */
+
+val CountLeadingZeroBits : forall 'N, 'N >= 0. bits('N) -> range(0,'N)
+function CountLeadingZeroBits(x) =
+ match HighestSetBit(x) {
+ None => length(x),
+ Some(n) => length(x) - 1 - n
+ }
+/** FUNCTION:bits(N) Extend(bits(M) x, integer N, boolean unsigned) */
+
+val Extend : forall 'N 'M, 0 <= 'M & 'M <= 'N. (implicit('N),bits('M),bit) -> bits('N) effect pure
+function Extend (x, unsigned) =
+ if unsigned then ZeroExtend(x) else SignExtend(x)
+
+/** FUNCTION:integer HighestSetBit(bits(N) x) */
+
+val HighestSetBit : forall 'N, 'N >= 0. bits('N) -> option(range(0, 'N + -1))
+function HighestSetBit(x) = {
+ let N = (length(x)) in {
+ result : range(0, 'N + -1) = 0;
+ break : bool = false;
+ foreach (i from (N - 1) downto 0)
+ if ~(break) & x[i] == 1 then {
+ result = i;
+ break = true;
+ };
+
+ if break then Some(result) else None;
+}}
+
+/** FUNCTION:integer Int(bits(N) x, boolean unsigned) */
+/* used to be called Int */
+val _Int : forall 'N, 'N >= 0. (bits('N), boolean) -> integer
+function _Int (x, unsigned) = {
+ result = if unsigned then UInt(x) else SInt(x);
+ result;
+}
+
+/** FUNCTION:boolean IsZero(bits(N) x) */
+
+val IsZero : forall 'N, 'N >= 0. bits('N) -> boolean
+function IsZero(x) = x == 0 /* ARM: Zeros(N) */
+
+/** FUNCTION:bit IsZeroBit(bits(N) x) */
+
+val IsZeroBit : forall 'N, 'N >= 0. bits('N) -> bit
+function IsZeroBit(x) = if IsZero(x) then 1 else 0
+
+/** FUNCTION:shared/functions/common/LSL */
+
+val LSL : forall 'N, 'N >= 0. (bits('N), uinteger) -> bits('N)
+function LSL(x, shift) =
+{
+ /*assert shift >= 0;*/
+ result : bits('N) = 0;
+ if shift == 0 then
+ result = x
+ else
+ let (result',_) = LSL_C (x, shift) in { result = result' };
+ result;
+}
+
+/** FUNCTION:shared/functions/common/LSL_C */
+
+val LSL_C : forall 'N 'S, 'N >= 0 & 'S >= 1. (bits('N), atom('S)) -> (bits('N))
+function LSL_C (x, shift) =
+{
+ /*assert shift > 0;*/
+ extended_x : bits('N + 'S) = x @ ((Zeros()) : (bits('S)));
+ result : bits('N) = mask(extended_x);
+ carry_out : bit = extended_x[length(x)];
+ (result, carry_out);
+}
+
+/** FUNCTION:shared/functions/common/LSR */
+
+val LSR : forall 'N, 'N >= 0. (bits('N), uinteger) -> bits('N)
+function LSR(x, shift) =
+{
+ /*assert shift >= 0;*/
+ result : bits('N) = 0;
+ if shift == 0 then
+ result = x
+ else
+ let (result', _) = LSR_C (x, shift) in { result = result' };
+ result;
+}
+
+/** FUNCTION:shared/functions/common/LSR_C */
+
+val LSR_C : forall 'N 'S, 'N >= 0 & 'S >=1. (bits('N), atom('S)) -> (bits('N), bit)
+function LSR_C(x, shift) =
+{
+ /*assert shift > 0;*/
+ extended_x : bits('N + 'S) = ZeroExtend(x);
+ result : bits('N) = extended_x[(shift + length(x) - 1)..shift];
+ carry_out : bit = extended_x[shift - 1];
+ (result, carry_out);
+}
+
+/** FUNCTION:integer Min(integer a, integer b) */
+
+val Min : (integer, integer) -> integer
+function Min (a,b) =
+ if a <= b then a else b
+
+val uMin : (uinteger, uinteger) -> uinteger
+function uMin (a,b) =
+ if a <= b then a else b
+
+/** FUNCTION:bits(N) NOT(bits(N) x); */
+
+val NOT : forall 'N, 'N >= 0. bits('N) -> bits('N)
+function NOT(x) = ~(x)
+
+val NOT' : bit -> bit
+function NOT'(x) = ~(x)
+
+/** FUNCTION:shared/functions/common/Ones */
+
+val Ones : forall 'N, 'N >= 0. unit -> bits('N)
+function Ones() = Replicate([1])
+
+/** FUNCTION:shared/functions/common/ROR */
+
+val ROR : forall 'N, 'N >= 0. (bits('N), uinteger) -> bits('N)
+function ROR(x, shift) =
+{
+ /*assert shift >= 0;*/
+ result : bits('N) = 0;
+ if shift == 0 then
+ result = x
+ else
+ let (result', _) = ROR_C (x, shift) in { result = result' };
+ result;
+}
+
+/** FUNCTION:shared/functions/common/ROR_C */
+
+val ROR_C : forall 'N 'S, 'N >= 0 & ('S >=1 | 'S <= -1). (bits('N), atom('S)) -> (bits('N))
+function ROR_C(x, shift) =
+{
+ let N = (length(x)) in {
+ /*assert shift != 0;*/
+ m : nat = mod (shift,N);
+ result : bits('N) = (LSR(x,m) | LSL(x,N - m));
+ carry_out : bit = result[N - 1];
+ (result, carry_out);
+}}
+
+/** FUNCTION:shared/functions/common/Replicate */
+
+val Replicate : forall 'N 'M, 'N >= 0 & 'M >= 0. bits('M) -> bits('N)
+function Replicate (x) = {
+ let (N,M) : (bits('N),bits('M)) = (0,0) in {
+ assert((mod(N, M) == 0),None);
+
+ result : bits('N) = 0;
+ zeros : bits('N-'M) = (Zeros());
+ foreach (i from M to N by M) result = ((result << M) | zeros:x);
+
+ result;
+}}
+
+/** FUNCTION:integer SInt(bits(N) x) */
+
+/*function forall Nat 'N, Nat 'M, Nat 'K, 'M = 'N + -1, 'K = 2**'M. [|'K * -1:'K + -1|] SInt((bits('N)) x) =*/
+val SInt : forall 'N 'M, 'N >= 0 & 'M >= 0. bits('N) -> atom('M)
+function SInt(x) = {
+ signed(x)
+ /*let N = (length((bits('N)) 0)) in {
+ (integer) result = (nat) x;
+ if x[N - 1] == 1 then result = result - (2 ** N);
+ result;
+}*/}
+
+
+/** FUNCTION:bits(N) SignExtend(bits(M) x, integer N) */
+
+val SignExtend : forall 'N 'M, 'N >= 0 & 'M >= 1. bits('M) -> bits('N)
+function SignExtend ([h]:remainder as x) =
+ (Replicate([h]) : bits(('N - 'M))) @ x
+
+/** FUNCTION:integer UInt(bits(N) x) */
+
+/* function forall Nat 'N, Nat 'M, 'M = 2**'N. [|'M + -1|] UInt((bits('N)) x) = ([|'M + -1|]) x */
+val Uint : forall 'M 'N, 'M >= 0 & 'N >= 0. bits('N) -> atom('M)
+function UInt(x) = unsigned(x)
+
+/** FUNCTION:bits(N) ZeroExtend(bits(M) x, integer N) */
+
+val ZeroExtend : forall 'M 'N, 'M >= 0 & 'N >= 0. bits('M) -> bits('N)
+function ZeroExtend (x) = (Zeros() : bits(('N + 'M * -1))) @ x
+
+/** FUNCTION:shared/functions/common/Zeros */
+
+val Zeros : forall 'N, 'N >= 0. unit -> bits('N)
+function Zeros() = 0 : bits('N) /* ARM: Zeros(N) */
+
+/** FUNCTION:bits(N) BitReverse(bits(N) data) */
+
+val BitReverse : forall 'N, 'N >= 0. bits('N) -> bits('N)
+function BitReverse(data) = {
+ let N = (length(data)) in {
+ result : bits('N) = 0; /* ARM: uninitialized */
+ foreach (i from 0 to (N - 1))
+ result[N - i - 1] = data[i];
+ result;
+}}
+
+/** FUNCTION:shared/functions/crc/HaveCRCExt */
+
+/* TODO: this should not be hardcoded */
+function HaveCRCExt() -> boolean = IMPLEMENTATION_DEFINED.HaveCRCExt
+
+/** FUNCTION:bits(32) Poly32Mod2(bits(N) data, bits(32) poly) */
+
+val Poly32Mod2 : forall 'N, 'N >= 0. (bits('N), bits(32)) -> bits(32)
+function Poly32Mod2(data, poly) = {
+ result : bits('N) = data;
+ let N = (length(data)) in {
+ assert((N > 32 ),None);
+ data' : bits('N) = data;
+ zeros : bits('N - 32) = Zeros();
+ foreach (i from (N - 1) downto 32) {
+ if data'[i] == 1 then
+ data'[(i - 1)..0] = data'[(i - 1)..0] ^ (poly:zeros[(i - 33)..0]);
+ };
+ data'[31..0];
+}}
+
+/** FUNCTION:shared/functions/exclusive/ClearExclusiveByAddress */
+
+val ClearExclusiveByAddress : (FullAddress, integer, uinteger) -> unit effect pure
+function ClearExclusiveByAddress(paddress, processorid, size) =
+{
+ info("The model does not implement the exclusive monitors explicitly.");
+}
+
+/** FUNCTION:shared/functions/exclusive/ClearExclusiveLocal */
+
+val ClearExclusiveLocal : int -> unit effect pure
+function ClearExclusiveLocal(processorid) =
+{
+ info("The model does not implement the exclusive monitors explicitly.");
+}
+
+/** FUNCTION:shared/functions/exclusive/ExclusiveMonitorsStatus */
+
+val ExclusiveMonitorsStatus : unit -> bit effect pure
+function ExclusiveMonitorsStatus() =
+{
+ info("The model does not implement the exclusive monitors explicitly.");
+ not_implemented("ExclusiveMonitorsStatus should not be called");
+ 0;
+}
+
+/** FUNCTION:shared/functions/exclusive/IsExclusiveGlobal */
+
+val IsExclusiveGlobal : (FullAddress, integer, uinteger) -> boolean effect pure
+function IsExclusiveGlobal(paddress, processorid, size) = {
+ info("The model does not implement the exclusive monitors explicitly.");
+ true;
+}
+
+/** FUNCTION:shared/functions/exclusive/IsExclusiveLocal */
+
+val IsExclusiveLocal : (FullAddress, integer, uinteger) -> boolean effect pure
+function IsExclusiveLocal(paddress, processorid, size) = {
+ info("The model does not implement the exclusive monitors explicitly.");
+ true;
+}
+
+/** FUNCTION:shared/functions/exclusive/MarkExclusiveGlobal */
+
+val MarkExclusiveGlobal : (FullAddress, integer, uinteger) -> unit effect pure
+function MarkExclusiveGlobal(paddress, processorid, size) = {
+ info("The model does not implement the exclusive monitors explicitly.");
+}
+
+/** FUNCTION:shared/functions/exclusive/MarkExclusiveLocal */
+
+val MarkExclusiveLocal : (FullAddress, integer, uinteger) -> unit effect pure
+function MarkExclusiveLocal(paddress, processorid, size) = {
+ info("The model does not implement the exclusive monitors explicitly.");
+}
+
+/** FUNCTION:shared/functions/exclusive/ProcessorID */
+
+/* FIXME: return the real number? */
+function integer ProcessorID() = {0}
+
+/** FUNCTION:(bits(N), bits(4)) AddWithCarry(bits(N) x, bits(N) y, bit carry_in) */
+
+val AddWithCarry : forall 'N, 'N >= 0. (bits('N), bits('N), bit) -> (bits('N), bits(4))
+function AddWithCarry (x, y, carry_in) = {
+ unsigned_sum : uinteger = UInt(x) + UInt(y) + UInt([carry_in]);
+ signed_sum : integer = SInt(x) + SInt(y) + UInt([carry_in]);
+ result : bits('N) = unsigned_sum; /* same value as signed_sum<N-1:0> */
+ n : bit = result[(length(result)) - 1];
+ z : bit = if IsZero(result) then 1 else 0;
+ c : bit = if UInt(result) == unsigned_sum then 0 else 1;
+ v : bit = if SInt(result) == signed_sum then 0 else 1;
+ (result,[n,z,c,v])
+ /* (result,[n]:[z]:[c]:[v]) */
+}
+
+/** TYPE:shared/functions/memory/AddressDescriptor */
+/** FUNCTION:boolean BigEndian() */
+
+val BigEndian : unit -> boolean effect {rreg}
+function BigEndian() = {
+ bigend : boolean = 0; /* ARM: uninitialized */
+ if UsingAArch32() then
+ bigend = (PSTATE_E != 0)
+ else if PSTATE_EL == EL0 then
+ bigend = (SCTLR_EL1.E0E != 0)
+ else
+ bigend = ((SCTLR'()).EE != 0);
+ bigend;
+}
+
+/** FUNCTION:shared/functions/memory/BigEndianReverse */
+val BigEndianReverse : forall 'W, 'W in {8,16,32,64,128}. bits('W) -> bits('W) effect pure
+function rec BigEndianReverse (value) =
+{
+ width : uinteger= length(value);
+ half : uinteger = quot(width,2);
+ if width == 8 then /*return*/ value
+ else /*return*/ BigEndianReverse(value[(half - 1)..0]) @ BigEndianReverse(value[(width - 1)..half]);
+}
+
+/** FUNCTION:shared/functions/memory/DataMemoryBarrier */
+
+/* external */ val DataMemoryBarrier_Reads : unit -> unit effect {barr}
+/* external */ val DataMemoryBarrier_Writes : unit -> unit effect {barr}
+/* external */ val DataMemoryBarrier_All : unit -> unit effect {barr}
+
+val DataMemoryBarrier : (MBReqDomain, MBReqTypes) -> unit effect {barr}
+function DataMemoryBarrier(domain, types) =
+{
+ if domain != MBReqDomain_FullSystem & domain != MBReqDomain_InnerShareable then
+ not_implemented("DataMemoryBarrier: not MBReqDomain_FullSystem or _InnerShareable");
+
+ match types {
+ MBReqTypes_Reads => DataMemoryBarrier_Reads(),
+ MBReqTypes_Writes => DataMemoryBarrier_Writes(),
+ MBReqTypes_All => DataMemoryBarrier_All()
+ };
+}
+
+/** FUNCTION:shared/functions/memory/DataSynchronizationBarrier */
+
+/* external */ val DataSynchronizationBarrier_Reads : unit -> unit effect {barr}
+/* external */ val DataSynchronizationBarrier_Writes : unit -> unit effect {barr}
+/* external */ val DataSynchronizationBarrier_All : unit -> unit effect {barr}
+
+val DataSynchronizationBarrier : (MBReqDomain, MBReqTypes) -> unit effect {barr}
+function DataSynchronizationBarrier(domain, types) =
+{
+ if domain != MBReqDomain_FullSystem then
+ not_implemented("DataSynchronizationBarrier: not MBReqDomain_FullSystem");
+
+ match types {
+ MBReqTypes_Reads => DataSynchronizationBarrier_Reads(),
+ MBReqTypes_Writes => DataSynchronizationBarrier_Writes(),
+ MBReqTypes_All => DataSynchronizationBarrier_All()
+ };
+}
+
+/** ENUMERATE:shared/functions/memory/DeviceType */
+/** ENUMERATE:shared/functions/memory/DeviceType */
+/** TYPE:shared/functions/memory/FaultRecord */
+/** TYPE:shared/functions/memory/FullAddress */
+/** FUNCTION:shared/functions/memory/Hint_Prefetch */
+val Hint_Prefetch : (bits(64),PrefetchHint,integer,boolean) -> unit effect pure
+function Hint_Prefetch(addr,hint,target,stream) = ()
+/** ENUMERATE:shared/functions/memory/MBReqDomain */
+/** ENUMERATE:shared/functions/memory/MBReqTypes */
+/** TYPE:shared/functions/memory/MemAttrHints */
+/** ENUMERATE:shared/functions/memory/MemType */
+/** TYPE:shared/functions/memory/MemoryAttributes */
+/** ENUMERATE:shared/functions/memory/PrefetchHint */
+/** FUNCTION:shared/functions/memory/_Mem */
+
+/* regular load */
+/* external */ val rMem_NORMAL : forall 'N, 'N in {1,2,4,8,16}. (bits(64) /*address*/,atom('N) /*size*/) -> bits('N*8) effect {rmem}
+/* non-temporal load (LDNP), see ARM ARM for special exception to normal memory ordering rules */
+/* external */ val rMem_STREAM : forall 'N, 'N in {1,2,4,8,16}. (bits(64) /*address*/,atom('N) /*size*/) -> bits('N*8) effect {rmem}
+/* load-acquire */
+/* external */ val rMem_ORDERED : forall 'N, 'N in {1,2,4,8,16}. (bits(64) /*address*/,atom('N) /*size*/) -> bits('N*8) effect {rmem}
+/* load-exclusive */
+/* external */ val rMem_ATOMIC : forall 'N, 'N in {1,2,4,8,16}. (bits(64) /*address*/,atom('N) /*size*/) -> bits('N*8) effect {rmem}
+/* load-exclusive+acquire */
+/* external */ val rMem_ATOMIC_ORDERED : forall 'N, 'N in {1,2,4,8,16}. (bits(64) /*address*/,atom('N) /*size*/) -> bits('N*8) effect {rmem}
+
+struct read_buffer_type = {
+ acctype : AccType,
+ exclusive : bool,
+ address : bits(64),
+ size : uinteger,
+}
+
+let empty_read_buffer =
+{ size = 0;
+ /* arbitrary values: */
+ acctype = AccType_NORMAL;
+ exclusive = false;
+ address = 0;
+}
+
+val _rMem : forall 'N, 'N in {1,2,4,8,16}. (read_buffer_type, AddressDescriptor, atom('N), AccType, bool) -> read_buffer_type effect pure
+function _rMem(read_buffer, desc, size, acctype, exclusive) = {
+ if read_buffer.size == 0 then {
+ { acctype = acctype;
+ exclusive = exclusive;
+ address = (desc.paddress).physicaladdress;
+ size = size;
+ }
+ }
+ else {
+ assert((read_buffer.acctype == acctype), None);
+ assert((read_buffer.exclusive == exclusive), None);
+ assert(((read_buffer.address + read_buffer.size) : bits(64) == (desc.paddress).physicaladdress), None);
+
+ {read_buffer with size = read_buffer.size + size}
+ }
+}
+
+val flush_read_buffer : forall 'N, 'N in {1,2,4,8,16}. (read_buffer_type, atom('N)) -> bits('N*8)
+function flush_read_buffer(read_buffer, size) =
+{
+ assert((read_buffer.size == size), None);
+
+ value : bits('N*8) = 0;
+
+ if read_buffer.exclusive then {
+ match read_buffer.acctype {
+ AccType_ATOMIC => value = rMem_ATOMIC(read_buffer.address, read_buffer.size),
+ AccType_ORDERED => value = rMem_ATOMIC_ORDERED(read_buffer.address, read_buffer.size),
+ _ => { not_implemented("unimplemented memory access"); }
+ }
+ } else {
+ match read_buffer.acctype {
+ AccType_NORMAL => value = rMem_NORMAL (read_buffer.address, read_buffer.size),
+ AccType_STREAM => value = rMem_STREAM (read_buffer.address, read_buffer.size),
+ AccType_UNPRIV => value = rMem_NORMAL (read_buffer.address, read_buffer.size),
+ AccType_ORDERED => value = rMem_ORDERED(read_buffer.address, read_buffer.size),
+ AccType_ATOMIC => assert(false,Some("Reached AccType_ATOMIC: unreachable when address values are known"))
+ /*/*old code*/ value = rMem_NORMAL (read_buffer.address, read_buffer.size) /* the second read of 64-bit LDXP */*/
+ }
+ };
+
+ if BigEndian() then
+ value = BigEndianReverse(value);
+ value;
+}
+
+/** FUNCTION:_Mem[AddressDescriptor desc, integer size, AccType acctype] = bits(8*size) value; */
+
+/* regular store */
+/* external */ val wMem_Addr_NORMAL : forall 'N, 'N in {1,2,4,8,16}. (bits(64) /*address*/, atom('N) /*size*/) -> unit effect {eamem}
+/* store-release */
+/* external */ val wMem_Addr_ORDERED : forall 'N, 'N in {1,2,4,8,16}. (bits(64) /*address*/, atom('N) /*size*/) -> unit effect {eamem}
+/* store-exclusive */
+/* external */ val wMem_Addr_ATOMIC : forall 'N, 'N in {1,2,4,8,16}. (bits(64) /*address*/, atom('N) /*size*/) -> unit effect {eamem}
+/* store-exclusive+release */
+/* external */ val wMem_Addr_ATOMIC_ORDERED : forall 'N, 'N in {1,2,4,8,16}. (bits(64) /*address*/, atom('N) /*size*/) -> unit effect {eamem}
+
+val wMem_Addr : forall 'N, 'N in {1,2,4,8,16}. (bits(64), atom('N), AccType, boolean) -> unit effect {eamem}
+function wMem_Addr(address, size, acctype, excl) =
+{
+ match (excl, acctype) {
+ (false, AccType_NORMAL) => wMem_Addr_NORMAL(address, size),
+ (false, AccType_STREAM) => wMem_Addr_NORMAL(address, size),
+ (false, AccType_UNPRIV) => wMem_Addr_NORMAL(address, size),
+ (false, AccType_ORDERED) => wMem_Addr_ORDERED(address, size),
+ (true, AccType_ATOMIC) => wMem_Addr_ATOMIC(address, size),
+ (true, AccType_ORDERED) => wMem_Addr_ATOMIC_ORDERED(address, size),
+ _ => not_implemented("unrecognised memory access")
+ };
+}
+
+
+/* regular store */
+/* external */ val wMem_Val_NORMAL : forall 'N, 'N in {1,2,4,8,16}. (atom('N) /*size*/, bits('N*8) /*value*/) -> unit effect {wmv}
+/* store-exclusive */
+/* external */ val wMem_Val_ATOMIC : forall 'N, 'N in {1,2,4,8,16}. (atom('N) /*size*/, bits('N*8) /*value*/) -> bool effect {wmv}
+
+
+struct write_buffer_type = {
+ acctype : AccType,
+ exclusive : bool,
+ address : bits(64),
+ value : bits(128),
+ size : uinteger,
+}
+
+let empty_write_buffer = {
+ size = 0;
+ /* arbitrary values: */
+ acctype = AccType_NORMAL;
+ exclusive = false;
+ address = 0;
+ value = 0;
+}
+
+val _wMem : forall 'N, 'N in {1,2,4,8,16}. (write_buffer_type, AddressDescriptor, atom('N), AccType, bool, bits('N*8)) -> write_buffer_type
+function _wMem(write_buffer, desc, size, acctype, exclusive, value) = {
+ if write_buffer.size == 0 then {
+ { acctype = acctype;
+ exclusive = exclusive;
+ address = (desc.paddress).physicaladdress;
+ value : bits(128) = ZeroExtend(value);
+ size = size;
+ }
+ } else {
+ assert((write_buffer.acctype == acctype),None);
+ assert((write_buffer.exclusive == exclusive), None);
+ assert(((write_buffer.address + write_buffer.size) : bits(64) == (desc.paddress).physicaladdress),None);
+
+ { write_buffer with
+ value = (ZeroExtend(value @ (write_buffer.value)[((write_buffer.size * 8) - 1) .. 0])),
+ size = write_buffer.size + size
+ }
+ }
+}
+
+val flush_write_buffer : write_buffer_type -> unit effect {wmv}
+function flush_write_buffer(write_buffer) = {
+ assert((write_buffer.exclusive == false), None);
+
+ match write_buffer.acctype {
+ AccType_NORMAL => wMem_Val_NORMAL (write_buffer.size, (write_buffer.value)[((write_buffer.size * 8) - 1) .. 0]),
+ AccType_STREAM => wMem_Val_NORMAL (write_buffer.size, (write_buffer.value)[((write_buffer.size * 8) - 1) .. 0]),
+ AccType_UNPRIV => wMem_Val_NORMAL (write_buffer.size, (write_buffer.value)[((write_buffer.size * 8) - 1) .. 0]),
+ AccType_ORDERED => wMem_Val_NORMAL (write_buffer.size, (write_buffer.value)[((write_buffer.size * 8) - 1) .. 0]),
+ _ => not_implemented("unrecognised memory access")
+ };
+}
+
+val flush_write_buffer_exclusive : write_buffer_type -> bool effect {wmv}
+function flush_write_buffer_exclusive(write_buffer) = {
+ assert((write_buffer.exclusive), None);
+
+ match write_buffer.acctype {
+ AccType_ATOMIC => wMem_Val_ATOMIC(write_buffer.size, (write_buffer.value)[((write_buffer.size * 8) - 1) .. 0]),
+ AccType_ORDERED => wMem_Val_ATOMIC(write_buffer.size, (write_buffer.value)[((write_buffer.size * 8) - 1) .. 0]),
+ _ => { not_implemented("unrecognised memory access"); false; }
+ };
+}
+
+/** FUNCTION:BranchTo(bits(N) target, BranchType branch_type) */
+
+val BranchTo : forall 'N, 'N in {32,64}. BranchType -> unit effect {rreg,wreg}
+function BranchTo(target, branch_type) = {
+ target' : bits('N) = target; /* Sail does not let you change parameter vector */
+
+ Hint_Branch(branch_type);
+ if length(target) == 32 then {
+ assert( UsingAArch32(), None );
+ _PC = ZeroExtend(target);
+ } else {
+ assert(( length(target) == 64 & ~(UsingAArch32()) ), None);
+ /* Remove the tag bits from tagged target */
+ let pstate_el = PSTATE_EL in {
+ if pstate_el == EL0 then {
+ if target'[55] == 1 & TCR_EL1.TBI1 == 1 then
+ target'[63..56] = 0b11111111;
+ if target'[55] == 0 & TCR_EL1.TBI0 == 1 then
+ target'[63..56] = 0b00000000;
+ }
+ else if pstate_el == EL1 then {
+ if target'[55] == 1 & TCR_EL1.TBI1 == 1 then
+ target'[63..56] = 0b11111111;
+ if target'[55] == 0 & TCR_EL1.TBI0 == 1 then
+ target'[63..56] = 0b00000000;
+ }
+ else if pstate_el == EL2 then {
+ if TCR_EL2.TBI == 1 then
+ target'[63..56] = 0b00000000;
+ }
+ else if pstate_el == EL3 then {
+ if TCR_EL3.TBI == 1 then
+ target'[63..56] = 0b00000000;
+ }
+ else assert(false,None)
+ };
+ _PC = target';
+ };
+}
+
+/** ENUMERATE:shared/functions/registers/BranchType */
+/** FUNCTION:shared/functions/registers/Hint_Branch */
+
+val Hint_branch : BranchType -> unit effect pure
+function Hint_Branch(hint) = {
+ info("This hint can be used for hardware optimization that has no effect on the model.");
+}
+
+/** FUNCTION:shared/functions/registers/ResetExternalDebugRegisters */
+val ResetExternalDebugRegisters : boolean -> unit
+function unit ResetExternalDebugRegisters (b) =
+ not_implemented_extern("ResetExternalDebugRegisters")
+/** FUNCTION:shared/functions/registers/ThisInstrAddr */
+
+val ThisInstrAddr : forall 'N, 'N >= 0. implicit('N) -> bits('N) effect {rreg}
+function ThisInstrAddr() = {
+ let N = (length(0 : bits('N))) in {
+ assert((N == 64 | (N == 32 & UsingAArch32())), None);
+ /*return*/ mask(rPC());
+}}
+
+/** FUNCTION:// SPSR[] - non-assignment form */
+
+function rSPSR() -> bits(32) = {
+ result : bits(32) = 0; /* ARM: uninitialized */
+ if UsingAArch32() then {
+ not_implemented("rSPSR UsingAArch32");
+ /* ARM:
+ case PSTATE.M of
+ when M32_FIQ result = SPSR_fiq;
+ when M32_IRQ result = SPSR_irq;
+ when M32_Svc result = SPSR_svc;
+ when M32_Monitor result = SPSR_mon;
+ when M32_Abort result = SPSR_abt;
+ when M32_Hyp result = SPSR_hyp;
+ when M32_Undef result = SPSR_und;
+ otherwise Unreachable();
+ */
+ } else {
+ let pstate_el = PSTATE_EL in {
+ if pstate_el == EL1 then result = SPSR_EL1
+ else if pstate_el == EL2 then result = SPSR_EL2
+ else if pstate_el == EL3 then result = SPSR_EL3
+ else Unreachable()
+ };
+ };
+
+ result;
+}
+
+/** FUNCTION:shared/functions/system/ClearEventRegister */
+function unit ClearEventRegister () = not_implemented_extern("ClearEventRegister")
+/** FUNCTION:boolean ConditionHolds(bits(4) cond) */
+
+val ConditionHolds : bits(4) -> boolean effect {rreg}
+function ConditionHolds(_cond) = {
+ result : boolean = false; /* ARM: uninitialized */
+ /* Evaluate base condition */
+ match _cond[3..1] {
+ 0b000 => result = (PSTATE_Z == 1), /* EQ or NE */
+ 0b001 => result = (PSTATE_C == 1), /* CS or CC */
+ 0b010 => result = (PSTATE_N == 1), /* MI or PL */
+ 0b011 => result = (PSTATE_V == 1), /* VS or VC */
+ 0b100 => result = (PSTATE_C == 1 & PSTATE_Z == 0), /* HI or LS */
+ 0b101 => result = (PSTATE_N == PSTATE_V), /* GE or LT */
+ 0b110 => result = (PSTATE_N == PSTATE_V & PSTATE_Z == 0), /* GT or LE */
+ 0b111 => result = true /* AL */
+ };
+
+ /* Condition flag values in the set '111x' indicate always true */
+ /* Otherwise, invert condition if necessary. */
+ if _cond[0] == 1 & _cond != 0b1111 then
+ result = ~(result);
+
+ result;
+}
+
+/** ENUMERATE:shared/functions/system/EL0 */
+/** FUNCTION:boolean ELUsingAArch32(bits(2) el) */
+
+function ELUsingAArch32(el : bits(2)) -> boolean =
+ false /* ARM: ELStateUsingAArch32(el, IsSecureBelowEL3()) */ /* FIXME: implement */
+
+/** FUNCTION:shared/functions/system/EventRegisterSet */
+function unit EventRegisterSet () = not_implemented_extern("EventRegisterSet")
+/** FUNCTION:shared/functions/system/EventRegistered */
+function boolean EventRegistered () = not_implemented_extern("EventRegistered")
+/** FUNCTION:shared/functions/system/HaveAArch32EL */
+
+function boolean HaveAArch32EL(el : bits(2)) = {
+ /* Return TRUE if Exception level 'el' supports AArch32 */
+ if ~(HaveEL(el)) then
+ false
+ else if ~(HaveAnyAArch32()) then
+ false /* No exception level can use AArch32 */
+ else if HighestELUsingAArch32() then
+ true /* All exception levels must use AArch32 */
+ else if el == EL0 then
+ true /* EL0 must support using AArch32 */
+ else
+
+ IMPLEMENTATION_DEFINED.HaveAArch32EL;
+}
+
+/** FUNCTION:boolean HaveAnyAArch32() */
+
+function boolean HaveAnyAArch32() =
+{
+ IMPLEMENTATION_DEFINED.HaveAnyAArch32
+}
+
+/** FUNCTION:boolean HaveEL(bits(2) el) */
+
+function boolean HaveEL(el : bits(2)) = {
+ if el == EL1 | el == EL0 then
+ true /*EL1 and EL0 must exist*/
+ else {
+
+ if el == EL2 then IMPLEMENTATION_DEFINED.HaveEL2
+ else if el == EL3 then IMPLEMENTATION_DEFINED.HaveEL3
+ else {assert (false,None); false};
+ };
+}
+
+/** FUNCTION:boolean HighestELUsingAArch32() */
+
+function boolean HighestELUsingAArch32() =
+{
+ if ~(HaveAnyAArch32()) then false else
+ IMPLEMENTATION_DEFINED.HighestELUsingAArch32; /* e.g. CFG32SIGNAL == HIGH */
+}
+
+/** FUNCTION:shared/functions/system/Hint_Yield */
+
+function unit Hint_Yield() = ()
+
+/** FUNCTION:shared/functions/system/InstructionSynchronizationBarrier */
+/* external */ val InstructionSynchronizationBarrier : unit -> unit effect {barr}
+/** FUNCTION:shared/functions/system/InterruptPending */
+
+function boolean InterruptPending () = not_implemented_extern("InterruptPending")
+
+/** FUNCTION:boolean IsSecure() */
+
+function boolean IsSecure() =
+{
+ /*Return TRUE if current Exception level is in Secure state.*/
+ if HaveEL(EL3) & ~(UsingAArch32()) & PSTATE_EL == EL3 then
+ true
+ else if HaveEL(EL3) & UsingAArch32() & PSTATE_M == M32_Monitor then
+ true
+ else
+ IsSecureBelowEL3();
+}
+
+/** FUNCTION:boolean IsSecureBelowEL3() */
+
+function boolean IsSecureBelowEL3() = {
+ if HaveEL(EL3) then
+ ((SCR_GEN()).NS == 0)
+ else if HaveEL(EL2) then
+ false
+ else
+ /*TRUE if processor is Secure or FALSE if Non-secure;*/
+ IMPLEMENTATION_DEFINED.IsSecureBelowEL3;
+}
+
+/** ENUMERATE:shared/functions/system/Mode_Bits */
+/** FUNCTION:shared/functions/system/SCR_GEN */
+
+function SCRType SCR_GEN() = {
+ /*AArch32 secure & AArch64 EL3 registers are not architecturally mapped*/
+ assert (HaveEL(EL3),None);
+
+ if HighestELUsingAArch32() then
+ SCR
+ else
+ SCR_EL3;
+}
+
+/** FUNCTION:shared/functions/system/SendEvent */
+
+function unit SendEvent() =
+{
+ ()
+ /* TODO: ??? */
+}
+
+/** FUNCTION:shared/functions/system/Unreachable */
+
+function unit Unreachable() =
+{
+ assert (false,Some("Unreachable reached"));
+}
+
+/** FUNCTION:shared/functions/system/UsingAArch32 */
+
+function boolean UsingAArch32() =
+{
+ false;
+ /* ARM: uncomment when implementing aarch32
+ boolean aarch32 = (PSTATE.nRW == '1');
+ if !HaveAnyAArch32() then assert !aarch32;
+ if HighestELUsingAArch32() then assert aarch32;
+ return aarch32;*/
+}
+
+/** FUNCTION:shared/functions/system/WaitForEvent */
+function unit WaitForEvent () = not_implemented_extern("WaitForEvent")
+/** FUNCTION:shared/functions/system/WaitForInterrupt */
+function unit WaitForInterrupt () = not_implemented_extern("WaitForInterrupt")
+/** FUNCTION:shared/translation/translation/PAMax */
+
+function uinteger PAMax() =
+{
+ pa_size : uinteger = 0;
+ match ID_AA64MMFR0_EL1.PARange {
+ 0b0000 => pa_size = 32,
+ 0b0001 => pa_size = 36,
+ 0b0010 => pa_size = 40,
+ 0b0011 => pa_size = 42,
+ 0b0100 => pa_size = 44,
+ 0b0101 => pa_size = 48,
+ _ => Unreachable()
+ };
+
+ /*return*/ pa_size;
+}
+
+/** FUNCTION:shared/translation/translation/S1TranslationRegime */
+
+val S1TranslationRegime : unit -> bits(2) effect {rreg}
+function S1TranslationRegime () = {
+ if PSTATE_EL != EL0 then
+ PSTATE_EL
+ else if IsSecure() & HaveEL(EL3) & ELUsingAArch32(EL3) then
+ EL3
+ else
+ EL1
+}
+
diff --git a/aarch64_small/armV8_embed.lem b/aarch64_small/armV8_embed.lem
new file mode 100644
index 00000000..b8cd648f
--- /dev/null
+++ b/aarch64_small/armV8_embed.lem
@@ -0,0 +1,5561 @@
+(*Generated by Sail from armV8.sail.*)
+open import Pervasives_extra
+open import Sail_impl_base
+open import Prompt
+open import Sail_values
+open import ArmV8_embed_types
+open import ArmV8_extras_embed
+let lsl' (n, m) = n * (pow (2:ii) m)
+
+let not_implemented message = exit message
+
+let not_implemented_extern message = exit message
+
+let info message = ()
+
+let UNKNOWN = (0:ii)
+
+let M32_User = Vector [B1;B0;B0;B0;B0] 4 false
+
+let M32_FIQ = Vector [B1;B0;B0;B0;B1] 4 false
+
+let M32_IRQ = Vector [B1;B0;B0;B1;B0] 4 false
+
+let M32_Svc = Vector [B1;B0;B0;B1;B1] 4 false
+
+let M32_Monitor = Vector [B1;B0;B1;B1;B0] 4 false
+
+let M32_Abort = Vector [B1;B0;B1;B1;B1] 4 false
+
+let M32_Hyp = Vector [B1;B1;B0;B1;B0] 4 false
+
+let M32_Undef = Vector [B1;B1;B0;B1;B1] 4 false
+
+let M32_System = Vector [B1;B1;B1;B1;B1] 4 false
+
+let EL3 = Vector [B1;B1] 1 false
+
+let EL2 = Vector [B1;B0] 1 false
+
+let EL1 = Vector [B0;B1] 1 false
+
+let EL0 = Vector [B0;B0] 1 false
+
+let DebugHalt_Breakpoint = Vector [B0;B0;B0;B1;B1;B1] 5 false
+
+let DebugHalt_EDBGRQ = Vector [B0;B1;B0;B0;B1;B1] 5 false
+
+let DebugHalt_Step_Normal = Vector [B0;B1;B1;B0;B1;B1] 5 false
+
+let DebugHalt_Step_Exclusive = Vector [B0;B1;B1;B1;B1;B1] 5 false
+
+let DebugHalt_OSUnlockCatch = Vector [B1;B0;B0;B0;B1;B1] 5 false
+
+let DebugHalt_ResetCatch = Vector [B1;B0;B0;B1;B1;B1] 5 false
+
+let DebugHalt_Watchpoint = Vector [B1;B0;B1;B0;B1;B1] 5 false
+
+let DebugHalt_HaltInstruction = Vector [B1;B0;B1;B1;B1;B1] 5 false
+
+let DebugHalt_SoftwareAccess = Vector [B1;B1;B0;B0;B1;B1] 5 false
+
+let DebugHalt_ExceptionCatch = Vector [B1;B1;B0;B1;B1;B1] 5 false
+
+let DebugHalt_Step_NoSyndrome = Vector [B1;B1;B1;B0;B1;B1] 5 false
+
+let HighestSetBit x =
+ let N = length (reset_vector_start (set_vector_start_to_length x)) in
+ let result = (0:ii) in
+ let break = B0 in
+ let (break, result) =
+ (foreach_dec (N - (1:ii),(0:ii),(1:ii)) (break,result)
+ (fun i (break,result) ->
+ let (result, break) =
+ if bitU_to_bool
+ ((~break) &.
+ (eq
+ (match (access (set_vector_start_to_length x) i) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (1:ii))))
+ then
+ let result = i in
+ let break = B1 in
+ (result,break)
+ else (result,break) in
+ (break,result))) in
+ if bitU_to_bool break
+ then Just result
+ else Nothing
+
+let IsZero x = eq_vec_range (set_vector_start_to_length x, (0:ii))
+
+let NOT x =
+ set_vector_start_to_length (bitwise_not (reset_vector_start (set_vector_start_to_length x)))
+
+let NOT' x = ~x
+
+let SInt x = signed (reset_vector_start (set_vector_start_to_length x))
+
+let UInt x = unsigned (reset_vector_start (set_vector_start_to_length x))
+
+let Zeros N' = set_vector_start_to_length (to_vec_dec (N',(0:ii)))
+
+let BitReverse data =
+ let N = length (reset_vector_start (set_vector_start_to_length data)) in
+ let result = set_vector_start_to_length (to_vec_dec (length data,(0:ii))) in
+ (foreach_inc ((0:ii),N - (1:ii),(1:ii)) result
+ (fun i result ->
+ update_pos result ((N - i) - (1:ii)) (access (set_vector_start_to_length data) i)))
+
+let ELUsingAArch32 el = B0
+
+let Hint_Yield () = ()
+
+let SendEvent () = ()
+
+let Unreachable () = assert' B0 (Just "Unreachable reached")
+
+let UsingAArch32 () = B0
+
+let _Rs =
+ Vector ["R30";"R29";"R28";"R27";"R26";"R25";"R24";"R23";"R22";"R21";"R20";"R19";"R18";"R17";"R16";"R15";"R14";"R13";"R12";"R11";"R10";
+ "R9";"R8";"R7";"R6";"R5";"R4";"R3";"R2";"R1";"R0"] 30 false
+
+let IMPLEMENTATION_DEFINED =
+ <| IMPLEMENTATION_DEFINED_type_HaveCRCExt = B1;
+ IMPLEMENTATION_DEFINED_type_HaveAArch32EL = B0;
+ IMPLEMENTATION_DEFINED_type_HaveAnyAArch32 = B0;
+ IMPLEMENTATION_DEFINED_type_HaveEL2 = B0;
+ IMPLEMENTATION_DEFINED_type_HaveEL3 = B0;
+ IMPLEMENTATION_DEFINED_type_HighestELUsingAArch32 = B0;
+ IMPLEMENTATION_DEFINED_type_IsSecureBelowEL3 = B0 |>
+
+let AArch64_ResetControlRegisters cold_reset = ()
+
+let DCPSInstruction target_el = not_implemented "DCPSInstruction"
+
+let DRPSInstruction () = not_implemented "DRPSInstruction"
+
+let Halt reason = not_implemented "Halt"
+
+let Align' (x, y) = y * (quot x y)
+
+let CountLeadingZeroBits x =
+ match (HighestSetBit (reset_vector_start (set_vector_start_to_length x))) with
+ | Nothing -> length (reset_vector_start (set_vector_start_to_length x))
+ | Just (n) -> ((length (reset_vector_start (set_vector_start_to_length x))) - (1:ii)) - n
+ end
+
+let IsZeroBit x =
+ if bitU_to_bool (IsZero (reset_vector_start (set_vector_start_to_length x)))
+ then B1
+ else B0
+
+let LSL_C (x, shift) =
+ let extended_x =
+ set_vector_start_to_length
+ ((set_vector_start_to_length x) ^^
+ (set_vector_start_to_length (set_vector_start_to_length (Zeros shift)))) in
+ let result =
+ set_vector_start_to_length
+ (set_vector_start_to_length
+ (mask (length x,reset_vector_start (set_vector_start_to_length extended_x)))) in
+ let carry_out =
+ access (set_vector_start_to_length extended_x) (length
+ (reset_vector_start (set_vector_start_to_length
+ x))) in
+ (set_vector_start_to_length result,carry_out)
+
+let Min (a, b) = if bitU_to_bool (lteq (a, b)) then a else b
+
+let uMin (a, b) = if bitU_to_bool (lteq (a, b)) then a else b
+
+let Replicate (N', x) =
+ let (N, M) =
+ (length (reset_vector_start (set_vector_start_to_length (to_vec_dec (N',(0:ii))))),length
+ (reset_vector_start (set_vector_start_to_length
+ (to_vec_dec
+ (length
+ x,
+ (0:ii)))))) in
+ let _ = assert' (eq_range (modulo N M, (0:ii))) (Nothing) in
+ let result = set_vector_start_to_length (to_vec_dec (N',(0:ii))) in
+ let zeros = set_vector_start_to_length (Zeros ((length result) - (length x))) in
+ (foreach_inc (M,N,M) result
+ (fun i result ->
+ set_vector_start_to_length
+ (bitwise_or
+ (set_vector_start_to_length (bitwise_leftshift (set_vector_start_to_length result, M)),
+ set_vector_start_to_length
+ ((set_vector_start_to_length zeros) ^^ (set_vector_start_to_length x))))))
+
+let ZeroExtend (N', x) =
+ set_vector_start_to_length
+ ((set_vector_start_to_length
+ (set_vector_start_to_length (Zeros (N' + ((length x) * ((0-1):ii)))))) ^^
+ (set_vector_start_to_length x))
+
+let Poly32Mod2 (data, poly) =
+ let result = set_vector_start_to_length data in
+ let N = length (reset_vector_start (set_vector_start_to_length data)) in
+ let _ = assert' (gt (N, (32:ii))) (Nothing) in
+ let data' = set_vector_start_to_length data in
+ let zeros = set_vector_start_to_length (Zeros ((length data) - (32:ii))) in
+ let data' =
+ (foreach_dec (N - (1:ii),(32:ii),(1:ii)) data'
+ (fun i data' ->
+ if bitU_to_bool
+ (eq
+ (match (access (set_vector_start_to_length data') i) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (1:ii)))
+ then
+ update
+ data' (i - (1:ii)) (0:ii)
+ (set_vector_start_to_length
+ (bitwise_xor
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length data') (i - (1:ii)) (0:ii)),
+ set_vector_start_to_length
+ ((set_vector_start_to_length poly) ^^
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length zeros) (i - (33:ii)) (0:ii)))))))
+ else data')) in
+ slice (set_vector_start_to_length data') (31:ii) (0:ii)
+
+let ClearExclusiveLocal processorid =
+ info "The model does not implement the exclusive monitors explicitly."
+
+let ProcessorID () = (0:ii)
+
+let rec BigEndianReverse value =
+ let width = length (reset_vector_start (set_vector_start_to_length value)) in
+ let half = quot width (2:ii) in
+ if bitU_to_bool (eq_range (width, (8:ii)))
+ then set_vector_start_to_length value
+ else
+ set_vector_start_to_length
+ ((set_vector_start_to_length
+ (BigEndianReverse
+ (reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length value) (half - (1:ii)) (0:ii)))))) ^^
+ (set_vector_start_to_length
+ (BigEndianReverse
+ (reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length value) (width - (1:ii)) half))))))
+
+let ClearEventRegister () = not_implemented_extern "ClearEventRegister"
+
+let EventRegisterSet () = not_implemented_extern "EventRegisterSet"
+
+let EventRegistered () = not_implemented_extern "EventRegistered"
+
+let InterruptPending () = not_implemented_extern "InterruptPending"
+
+let WaitForEvent () = not_implemented_extern "WaitForEvent"
+
+let WaitForInterrupt () = not_implemented_extern "WaitForInterrupt"
+
+let AArch64_SPAlignmentFault () = not_implemented "AArch64_SPAlignmentFault"
+
+let AArch64_SoftwareBreakpoint immediate = not_implemented "AArch64_SoftwareBreakpoint"
+
+let AArch64_CallHypervisor immediate = not_implemented "AArch64_CallHypervisor"
+
+let AArch64_CallSecureMonitor immediate = not_implemented "AArch64_CallSecureMonitor"
+
+let AArch64_CallSupervisor immediate = not_implemented "AArch64_CallSupervisor"
+
+let AArch64_SystemRegisterTrap (target_el, op0, op2, op1, crn, rt, crm, dir) =
+ not_implemented "AArch64_SystemRegisterTrap"
+
+let AArch64_UndefinedFault () = not_implemented "AArch64_UndefinedFault"
+
+let rPC () = read_reg _PC
+
+let AArch64_ExceptionReturn (new_pc, spsr) = not_implemented "AArch64_ExceptionReturn"
+
+let UInt_reg x = unsigned x
+
+let signalDBGEN () = not_implemented_extern "signalDBGEN"
+
+let signelNIDEN () = not_implemented_extern "signalNIDEN"
+
+let signalSPIDEN () = not_implemented_extern "signalSPIDEN"
+
+let signalDPNIDEN () = not_implemented_extern "signalSPNIDEN"
+
+let Halted () =
+ read_reg_field EDSCR "STATUS" >>= fun w__0 ->
+ read_reg_field EDSCR "STATUS" >>= fun w__1 ->
+ return (~((eq_vec
+ (set_vector_start_to_length w__0,
+ set_vector_start_to_length (Vector [B0;B0;B0;B0;B0;B1] 5 false))) |.
+ (eq_vec
+ (set_vector_start_to_length w__1,
+ set_vector_start_to_length (Vector [B0;B0;B0;B0;B1;B0] 5 false)))))
+
+let HaveCRCExt () = IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HaveCRCExt
+
+let ExclusiveMonitorsStatus () =
+ let _ = info "The model does not implement the exclusive monitors explicitly." in
+ not_implemented "ExclusiveMonitorsStatus should not be called" >>
+ return B0
+
+let Hint_Branch hint =
+ info "This hint can be used for hardware optimization that has no effect on the model."
+
+let ResetExternalDebugRegisters b = not_implemented_extern "ResetExternalDebugRegisters"
+
+let HaveAnyAArch32 () = IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HaveAnyAArch32
+
+let AArch64_WFxTrap (target_el, is_wfe) = not_implemented "AArch64_WFxTrap"
+
+let AArch64_CheckUnallocatedSystemAccess (op0, op1, crn, crm, op2, read) =
+ match (op0,op1,crn,crm,op2,read) with
+ | (Vector [B0;B0] _ _, Vector [B0;B0;B0] _ _, Vector [B0;B1;B0;B0] _ _, _, Vector [B1;B0;B1] _ _, _) ->
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ return (lt_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL1))
+ | (Vector [B0;B0] _ _, Vector [B0;B1;B1] _ _, Vector [B0;B1;B0;B0] _ _, _, Vector [B1;B1;B0] _ _, _) ->
+ return B0
+ | (Vector [B0;B0] _ _, Vector [B0;B1;B1] _ _, Vector [B0;B1;B0;B0] _ _, _, Vector [B1;B1;B1] _ _, _) ->
+ return B0
+ | (Vector [B1;B1] _ _, Vector [B0;B1;B1] _ _, Vector [B0;B1;B0;B0] _ _, Vector [B0;B0;B1;B0] _ _, Vector [B0;B0;B0] _ _, _) ->
+ return B0
+ | (Vector [B1;B1] _ _, Vector [B0;B1;B1] _ _, Vector [B0;B1;B0;B0] _ _, Vector [B0;B0;B1;B0] _ _, Vector [B0;B0;B1] _ _, _) ->
+ return B0
+ end
+
+let SysOp_R (op0, op1, crn, crm, op2) =
+ not_implemented "SysOp_R" >>
+ return (to_vec_dec ((64:ii),(0:ii)))
+
+let SysOp_W (op0, op1, crn, crm, op2, _val) = not_implemented "SysOp_W"
+
+let TxNestingLevelfp = RFull "TxNestingLevel"
+
+let TXIDR_EL0_DEPTHfp = RField ("TXIDR_EL0","DEPTH")
+
+let PSTATE_Nfp = RField ("NZCV","N")
+
+let PSTATE_Zfp = RField ("NZCV","Z")
+
+let PSTATE_Cfp = RField ("NZCV","C")
+
+let PSTATE_Vfp = RField ("NZCV","V")
+
+let PSTATE_Dfp = RField ("DAIF","D")
+
+let PSTATE_Afp = RField ("DAIF","A")
+
+let PSTATE_Ifp = RField ("DAIF","I")
+
+let PSTATE_Ffp = RField ("DAIF","F")
+
+let PSTATE_ELfp = RFull "CurrentEL"
+
+let PSTATE_SPfp = RField ("SPSel","SP")
+
+let _PCfp = RFull "_PC"
+
+let Hint_Prefetch (addr, hint, target, stream) = ()
+
+let AArch64_IsExclusiveVA (address, processorid, size) =
+ let _ = info "The model does not implement the exclusive monitors explicitly." in
+ B1
+
+let AArch64_MarkExclusiveVA (address, processorid, size) =
+ info "The model does not implement the exclusive monitors explicitly."
+
+let wPSTATE_NZCV ((), Vector [n;z;c;v] _ _) =
+ write_reg_bitfield NZCV "N" n >>
+ write_reg_bitfield NZCV "Z" z >>
+ write_reg_bitfield NZCV "C" c >>
+ write_reg_bitfield NZCV "V" v
+
+let wPSTATE_DAIF ((), Vector [d;a;i;f] _ _) =
+ write_reg_bitfield DAIF "D" d >>
+ write_reg_bitfield DAIF "A" a >>
+ write_reg_bitfield DAIF "I" i >>
+ write_reg_bitfield DAIF "F" f
+
+let Int (x, unsigned) =
+ if bitU_to_bool unsigned
+ then UInt (reset_vector_start (set_vector_start_to_length x))
+ else SInt (reset_vector_start (set_vector_start_to_length x))
+
+let ClearExclusiveByAddress (paddress, processorid, size) =
+ info "The model does not implement the exclusive monitors explicitly."
+
+let IsExclusiveGlobal (paddress, processorid, size) =
+ let _ = info "The model does not implement the exclusive monitors explicitly." in
+ B1
+
+let IsExclusiveLocal (paddress, processorid, size) =
+ let _ = info "The model does not implement the exclusive monitors explicitly." in
+ B1
+
+let MarkExclusiveGlobal (paddress, processorid, size) =
+ info "The model does not implement the exclusive monitors explicitly."
+
+let MarkExclusiveLocal (paddress, processorid, size) =
+ info "The model does not implement the exclusive monitors explicitly."
+
+let PAMax () =
+ let pa_size = (0:ii) in
+ read_reg_field ID_AA64MMFR0_EL1 "PARange" >>= fun w__0 ->
+ let pa_size =
+ match w__0 with
+ | Vector [B0;B0;B0;B0] _ _ -> (32:ii)
+ | Vector [B0;B0;B0;B1] _ _ -> (36:ii)
+ | Vector [B0;B0;B1;B0] _ _ -> (40:ii)
+ | Vector [B0;B0;B1;B1] _ _ -> (42:ii)
+ | Vector [B0;B1;B0;B0] _ _ -> (44:ii)
+ | Vector [B0;B1;B0;B1] _ _ -> (48:ii)
+ | _ -> pa_size
+ end in
+ return pa_size
+
+let AddWithCarry (x, y, carry_in) =
+ let unsigned_sum =
+ ((UInt (reset_vector_start (set_vector_start_to_length x))) +
+ (UInt (reset_vector_start (set_vector_start_to_length y)))) +
+ (UInt (reset_vector_start (set_vector_start_to_length (Vector [carry_in] 0 false)))) in
+ let signed_sum =
+ ((SInt (reset_vector_start (set_vector_start_to_length x))) +
+ (SInt (reset_vector_start (set_vector_start_to_length y)))) +
+ (UInt (reset_vector_start (set_vector_start_to_length (Vector [carry_in] 0 false)))) in
+ let result = set_vector_start_to_length (to_vec_dec (length x,unsigned_sum)) in
+ let n =
+ access (set_vector_start_to_length result) ((length
+ (reset_vector_start (set_vector_start_to_length
+ result))) - (1:ii)) in
+ let z =
+ if bitU_to_bool (IsZero (reset_vector_start (set_vector_start_to_length result)))
+ then B1
+ else B0 in
+ let c =
+ if bitU_to_bool
+ (eq_range (UInt (reset_vector_start (set_vector_start_to_length result)), unsigned_sum))
+ then B0
+ else B1 in
+ let v =
+ if bitU_to_bool
+ (eq_range (SInt (reset_vector_start (set_vector_start_to_length result)), signed_sum))
+ then B0
+ else B1 in
+ (set_vector_start_to_length result,set_vector_start 3
+ ((set_vector_start_to_length (Vector [n] 0 false)) ^^
+ (set_vector_start_to_length
+ ((set_vector_start_to_length (Vector [z] 0 false)) ^^
+ (set_vector_start_to_length
+ ((set_vector_start_to_length (Vector [c] 0 false)) ^^
+ (set_vector_start_to_length (Vector [v] 0 false))))))))
+
+let ConditionHolds _cond =
+ let result = B0 in
+ match (slice _cond (3:ii) (1:ii)) with
+ | Vector [B0;B0;B0] _ _ ->
+ read_reg_bitfield NZCV "Z" >>= fun w__0 ->
+ let result = eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return result
+ | Vector [B0;B0;B1] _ _ ->
+ read_reg_bitfield NZCV "C" >>= fun w__1 ->
+ let result = eq (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return result
+ | Vector [B0;B1;B0] _ _ ->
+ read_reg_bitfield NZCV "N" >>= fun w__2 ->
+ let result = eq (match w__2 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return result
+ | Vector [B0;B1;B1] _ _ ->
+ read_reg_bitfield NZCV "V" >>= fun w__3 ->
+ let result = eq (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return result
+ | Vector [B1;B0;B0] _ _ ->
+ read_reg_bitfield NZCV "C" >>= fun w__4 ->
+ read_reg_bitfield NZCV "Z" >>= fun w__5 ->
+ let result =
+ (eq (match w__4 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ (eq (match w__5 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) in
+ return result
+ | Vector [B1;B0;B1] _ _ ->
+ read_reg_bitfield NZCV "N" >>= fun w__6 ->
+ read_reg_bitfield NZCV "V" >>= fun w__7 ->
+ let result = eq_bit (w__6, w__7) in
+ return result
+ | Vector [B1;B1;B0] _ _ ->
+ read_reg_bitfield NZCV "N" >>= fun w__8 ->
+ read_reg_bitfield NZCV "V" >>= fun w__9 ->
+ read_reg_bitfield NZCV "Z" >>= fun w__10 ->
+ let result =
+ (eq_bit (w__8, w__9)) &. (eq (match w__10 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) in
+ return result
+ | Vector [B1;B1;B1] _ _ -> return B1
+ end >>= fun result ->
+ let result =
+ if bitU_to_bool
+ ((eq (match (access _cond (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ (neq_vec
+ (set_vector_start_to_length _cond,
+ set_vector_start_to_length (Vector [B1;B1;B1;B1] 3 false))))
+ then ~result
+ else result in
+ return result
+
+let DecodeShift op =
+ match toNatural (unsigned (reset_vector_start op)) with
+ | (0:nn) -> ShiftType_LSL
+ | (1:nn) -> ShiftType_LSR
+ | (2:nn) -> ShiftType_ASR
+ | (3:nn) -> ShiftType_ROR
+ end
+
+let HaveEL el =
+ if bitU_to_bool
+ ((eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL1)) |.
+ (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL0)))
+ then B1
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL2))
+ then IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HaveEL2
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL3))
+ then IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HaveEL3
+ else
+ let _ = assert' B0 (Nothing) in
+ B0
+
+let System_Put (op0, op1, crn, crm, op2, _val) =
+ match toNaturalFiveTup (op0,op1,crn,crm,op2) with
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (0:nn)) -> write_reg NZCV (slice _val (31:ii) (0:ii))
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (1:nn)) -> write_reg DAIF (slice _val (31:ii) (0:ii))
+ | ((3:nn), (3:nn), (13:nn), (0:nn), (2:nn)) -> write_reg TPIDR_EL0 (slice _val (63:ii) (0:ii))
+ end
+
+let DataSynchronizationBarrier (domain, types) =
+ (if bitU_to_bool (neq (domain, MBReqDomain_FullSystem))
+ then not_implemented "DataSynchronizationBarrier: not MBReqDomain_FullSystem"
+ else return ()) >>
+ match types with
+ | MBReqTypes_Reads -> DataSynchronizationBarrier_Reads ()
+ | MBReqTypes_Writes -> DataSynchronizationBarrier_Writes ()
+ | MBReqTypes_All -> DataSynchronizationBarrier_All ()
+ end
+
+let rELR el =
+ let r = to_vec_dec ((64:ii),(0:ii)) in
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL1))
+ then read_reg ELR_EL1
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL2))
+ then read_reg ELR_EL2
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL3))
+ then read_reg ELR_EL3
+ else return r
+
+let DataMemoryBarrier (domain, types) =
+ (if bitU_to_bool
+ ((neq (domain, MBReqDomain_FullSystem)) &. (neq (domain, MBReqDomain_InnerShareable)))
+ then not_implemented "DataMemoryBarrier: not MBReqDomain_FullSystem or _InnerShareable"
+ else return ()) >>
+ match types with
+ | MBReqTypes_Reads -> DataMemoryBarrier_Reads ()
+ | MBReqTypes_Writes -> DataMemoryBarrier_Writes ()
+ | MBReqTypes_All -> DataMemoryBarrier_All ()
+ end
+
+let wMem_Addr (address, size, acctype, excl) =
+ match (excl,acctype) with
+ | (B0, AccType_NORMAL) -> wMem_Addr_NORMAL (reset_vector_start address,size)
+ | (B0, AccType_STREAM) -> wMem_Addr_NORMAL (reset_vector_start address,size)
+ | (B0, AccType_UNPRIV) -> wMem_Addr_NORMAL (reset_vector_start address,size)
+ | (B0, AccType_ORDERED) -> wMem_Addr_ORDERED (reset_vector_start address,size)
+ | (B1, AccType_ATOMIC) -> wMem_Addr_ATOMIC (reset_vector_start address,size)
+ | (B1, AccType_ORDERED) -> wMem_Addr_ATOMIC_ORDERED (reset_vector_start address,size)
+ | _ -> not_implemented "unrecognised memory access"
+ end
+
+let SCTLR regime =
+ if bitU_to_bool (eq_vec (set_vector_start_to_length regime, set_vector_start_to_length EL1))
+ then SCTLR_EL1
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length regime, set_vector_start_to_length EL2))
+ then SCTLR_EL2
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length regime, set_vector_start_to_length EL3))
+ then SCTLR_EL3
+ else
+ let _ = assert' B0 (Just "SCTLR_type unreachable") in
+ SCTLR_EL1
+
+let DecodeRegExtend op =
+ match op with
+ | Vector [B0;B0;B0] _ _ -> ExtendType_UXTB
+ | Vector [B0;B0;B1] _ _ -> ExtendType_UXTH
+ | Vector [B0;B1;B0] _ _ -> ExtendType_UXTW
+ | Vector [B0;B1;B1] _ _ -> ExtendType_UXTX
+ | Vector [B1;B0;B0] _ _ -> ExtendType_SXTB
+ | Vector [B1;B0;B1] _ _ -> ExtendType_SXTH
+ | Vector [B1;B1;B0] _ _ -> ExtendType_SXTW
+ | Vector [B1;B1;B1] _ _ -> ExtendType_SXTX
+ end
+
+let rSP N' =
+ read_reg_bitfield SPSel "SP" >>= fun w__0 ->
+ if bitU_to_bool (eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then
+ read_reg SP_EL0 >>= fun w__1 ->
+ return (set_vector_start_to_length (mask (N',w__1)))
+ else
+ read_reg_field CurrentEL "EL" >>= fun pstate_el ->
+ if bitU_to_bool (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL0))
+ then
+ read_reg SP_EL0 >>= fun w__2 ->
+ return (set_vector_start_to_length (mask (N',w__2)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL1))
+ then
+ read_reg SP_EL1 >>= fun w__3 ->
+ return (set_vector_start_to_length (mask (N',w__3)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL2))
+ then
+ read_reg SP_EL2 >>= fun w__4 ->
+ return (set_vector_start_to_length (mask (N',w__4)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL3))
+ then
+ read_reg SP_EL3 >>= fun w__5 ->
+ return (set_vector_start_to_length (mask (N',w__5)))
+ else
+ let _ = assert' B0 (Nothing) in
+ read_reg SP_EL3 >>= fun w__6 ->
+ return (set_vector_start_to_length (mask (N',w__6)))
+
+let rSPSR () =
+ let result = to_vec_dec ((32:ii),(0:ii)) in
+ if bitU_to_bool (UsingAArch32 ())
+ then
+ not_implemented "rSPSR UsingAArch32" >>
+ return result
+ else
+ read_reg_field CurrentEL "EL" >>= fun pstate_el ->
+ if bitU_to_bool (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL1))
+ then read_reg SPSR_EL1
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL2))
+ then read_reg SPSR_EL2
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL3))
+ then read_reg SPSR_EL3
+ else return result
+
+let _R =
+ Vector [UndefinedRegister 0;R30;R29;R28;R27;R26;R25;R24;R23;R22;R21;R20;R19;R18;R17;R16;R15;R14;R13;R12;R11;
+ R10;R9;R8;R7;R6;R5;R4;R3;R2;R1;R0] 31 false
+
+let _V =
+ Vector [UndefinedRegister 0;V31;V30;V29;V28;V27;V26;V25;V24;V23;V22;V21;V20;V19;V18;V17;V16;V15;V14;V13;V12;
+ V11;V10;V9;V8;V7;V6;V5;V4;V3;V2;V1;V0] 32 false
+
+let ReservedValue () = AArch64_UndefinedFault ()
+
+let UnallocatedEncoding () = AArch64_UndefinedFault ()
+
+let CountLeadingSignBits x =
+ CountLeadingZeroBits
+ (reset_vector_start (set_vector_start_to_length
+ (bitwise_xor
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length x)
+ ((length (reset_vector_start (set_vector_start_to_length x))) - (1:ii)) (1:ii)),
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length x)
+ ((length (reset_vector_start (set_vector_start_to_length x))) - (2:ii)) (0:ii))))))
+
+let LSR_C (x, shift) =
+ let extended_x =
+ set_vector_start_to_length
+ (ZeroExtend ((length x) + shift,reset_vector_start (set_vector_start_to_length x))) in
+ let result =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length extended_x)
+ ((shift + (length (reset_vector_start (set_vector_start_to_length x)))) - (1:ii)) shift) in
+ let carry_out = access (set_vector_start_to_length extended_x) (shift - (1:ii)) in
+ (set_vector_start_to_length result,carry_out)
+
+let Ones N' =
+ set_vector_start_to_length
+ (Replicate (N',reset_vector_start (set_vector_start_to_length (Vector [B1] 0 false))))
+
+let SignExtend (N', ((Vector (h::_) _ _) as x)) =
+ let remainder = slice_raw x (1:ii) ((length (reset_vector_start x)) - (1:ii)) in
+ set_vector_start_to_length
+ ((set_vector_start_to_length
+ (set_vector_start_to_length
+ (Replicate
+ (N' - (length x),
+ reset_vector_start (set_vector_start_to_length (Vector [h] 0 false)))))) ^^
+ (set_vector_start_to_length x))
+
+let supported_instructions instr = match instr with | _ -> Just instr end
+
+let LSL (x, shift) =
+ let result = set_vector_start_to_length (to_vec_dec (length x,(0:ii))) in
+ if bitU_to_bool (eq_range (shift, (0:ii)))
+ then set_vector_start_to_length x
+ else
+ let (result', _) =
+ match (LSL_C (reset_vector_start (set_vector_start_to_length x),shift)) with
+ | (v0v', v1v') -> (v0v',v1v')
+ end in
+ set_vector_start_to_length result'
+
+let ThisInstrAddr N' =
+ let N = length (reset_vector_start (set_vector_start_to_length (to_vec_dec (N',(0:ii))))) in
+ let _ =
+ assert' ((eq_range (N, (64:ii))) |. ((eq_range (N, (32:ii))) &. (UsingAArch32 ()))) (Nothing) in
+ rPC () >>= fun w__0 ->
+ return (set_vector_start_to_length
+ (mask (N',reset_vector_start (set_vector_start_to_length w__0))))
+
+let AArch64_Abort (vaddress, fault) = not_implemented "AArch64_Abort"
+
+let rV (N', n) =
+ read_reg (access _V n) >>= fun w__0 ->
+ return (set_vector_start_to_length
+ (mask (N',reset_vector_start (set_vector_start_to_length w__0))))
+
+let rVpart (N', n, part) =
+ if bitU_to_bool (eq_range (part, (0:ii)))
+ then
+ read_reg (access _V n) >>= fun w__0 ->
+ return (set_vector_start_to_length
+ (set_vector_start_to_length (mask (N',reset_vector_start (set_vector_start_to_length w__0)))))
+ else
+ let _ =
+ assert' (eq_range
+ (length (reset_vector_start (set_vector_start_to_length (to_vec_dec (N',(0:ii))))),
+ (64:ii))) (Nothing) in
+ read_reg_range (access _V n) (127:ii) (64:ii) >>= fun w__1 ->
+ return (set_vector_start_to_length (set_vector_start 63 w__1))
+
+let ExternalInvasiveDebugEnabled () =
+ signalDBGEN () >>= fun w__0 ->
+ return (eq (w__0, HIGH))
+
+let Align (x, y) =
+ set_vector_start_to_length
+ (to_vec_dec (length x,Align' (UInt (reset_vector_start (set_vector_start_to_length x)),y)))
+
+let empty_read_buffer =
+ <| read_buffer_type_size = (0:ii);
+ read_buffer_type_acctype = AccType_NORMAL;
+ read_buffer_type_exclusive = B0;
+ read_buffer_type_address = (to_vec_dec ((64:ii),(0:ii))) |>
+
+let empty_write_buffer =
+ <| write_buffer_type_size = (0:ii);
+ write_buffer_type_acctype = AccType_NORMAL;
+ write_buffer_type_exclusive = B0;
+ write_buffer_type_address = (to_vec_dec ((64:ii),(0:ii)));
+ write_buffer_type_value = (to_vec_dec ((128:ii),(0:ii))) |>
+
+let HighestELUsingAArch32 () =
+ if bitU_to_bool (~(HaveAnyAArch32 ()))
+ then B0
+ else IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HighestELUsingAArch32
+
+let rX (N', n) =
+ if bitU_to_bool (neq_range (n, (31:ii)))
+ then
+ read_reg (access _R n) >>= fun w__0 ->
+ return (set_vector_start_to_length
+ (mask (N',reset_vector_start (set_vector_start_to_length w__0))))
+ else return (set_vector_start_to_length (Zeros N'))
+
+let rELR' () =
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ let _ =
+ assert' (neq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL0)) (Nothing) in
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ rELR (reset_vector_start (set_vector_start 1 w__1))
+
+let rSPIFP = [RFull "SP_EL0";PSTATE_SPfp]
+
+let wSPFP = ([PSTATE_SPfp],[RFull "SP_EL0"])
+
+let xFP n = if bitU_to_bool (neq_range (n, (31:ii))) then [RFull (access _Rs n)] else []
+
+let BigEndianIFP = if bitU_to_bool (UsingAArch32 ()) then [RFull "PSTATE_E"] else [PSTATE_ELfp]
+
+let flush_write_buffer_exclusive write_buffer =
+ let _ = assert' write_buffer.write_buffer_type_exclusive (Nothing) in
+ match write_buffer.write_buffer_type_acctype with
+ | AccType_ATOMIC ->
+ wMem_Val_ATOMIC
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | AccType_ORDERED ->
+ wMem_Val_ATOMIC
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | _ ->
+ not_implemented "unrecognised memory access" >>
+ return B0
+ end
+
+let AArch64_CreateFaultRecord (type', ipaddress, level, acctype, write, extflag, secondstage, s2fs1walk) =
+ <| FaultRecord_type' = type';
+ FaultRecord_domain = (to_vec_dec ((4:ii),UNKNOWN));
+ FaultRecord_debugmoe = (to_vec_dec ((4:ii),UNKNOWN));
+ FaultRecord_ipaddress = ipaddress;
+ FaultRecord_level = level;
+ FaultRecord_acctype = acctype;
+ FaultRecord_write = write;
+ FaultRecord_extflag = extflag;
+ FaultRecord_secondstage = secondstage;
+ FaultRecord_s2fs1walk = s2fs1walk |>
+
+let flush_write_buffer write_buffer =
+ let _ = assert' (eq_bit (write_buffer.write_buffer_type_exclusive, B0)) (Nothing) in
+ match write_buffer.write_buffer_type_acctype with
+ | AccType_NORMAL ->
+ wMem_Val_NORMAL
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | AccType_STREAM ->
+ wMem_Val_NORMAL
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | AccType_UNPRIV ->
+ wMem_Val_NORMAL
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | AccType_ORDERED ->
+ wMem_Val_NORMAL
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | _ -> not_implemented "unrecognised memory access"
+ end
+
+let System_Get (op0, op1, crn, crm, op2) =
+ match toNaturalFiveTup (op0,op1,crn,crm,op2) with
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (0:nn)) ->
+ read_reg NZCV >>= fun w__0 ->
+ return (ZeroExtend ((64:ii),w__0))
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (1:nn)) ->
+ read_reg DAIF >>= fun w__1 ->
+ return (ZeroExtend ((64:ii),w__1))
+ | ((3:nn), (3:nn), (13:nn), (0:nn), (2:nn)) -> read_reg TPIDR_EL0
+ end
+
+let Prefetch (address, prfop) =
+ let hint =
+ match toNatural (0:ii) with
+ | (0:nn) -> Prefetch_READ
+ | (1:nn) -> Prefetch_WRITE
+ | (2:nn) -> Prefetch_EXEC
+ end in
+ let target = (0:ii) in
+ let stream = B0 in
+ let returnv = B0 in
+ let (returnv, hint) =
+ match (slice prfop (4:ii) (3:ii)) with
+ | Vector [B0;B0] _ _ ->
+ let hint = Prefetch_READ in
+ (returnv,hint)
+ | Vector [B0;B1] _ _ ->
+ let hint = Prefetch_EXEC in
+ (returnv,hint)
+ | Vector [B1;B0] _ _ ->
+ let hint = Prefetch_WRITE in
+ (returnv,hint)
+ | Vector [B1;B1] _ _ ->
+ let returnv = B1 in
+ (returnv,hint)
+ end in
+ let (target, stream) =
+ if bitU_to_bool (~returnv)
+ then
+ let target = unsigned (reset_vector_start (slice prfop (2:ii) (1:ii))) in
+ let stream = neq (match (access prfop (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ (target,stream)
+ else (target,stream) in
+ ()
+
+let DoubleLockStatus () =
+ if bitU_to_bool (ELUsingAArch32 (reset_vector_start EL1))
+ then
+ read_reg_bitfield DBGOSDLR "DLK" >>= fun w__0 ->
+ read_reg_bitfield DBGPRCR "CORENPDRQ" >>= fun w__1 ->
+ Halted () >>= fun w__2 ->
+ return ((eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ ((eq (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &. (~w__2)))
+ else
+ read_reg_bitfield OSDLR_EL1 "DLK" >>= fun w__3 ->
+ read_reg_bitfield DBGPRCR_EL1 "CORENPDRQ" >>= fun w__4 ->
+ Halted () >>= fun w__5 ->
+ return ((eq (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ ((eq (match w__4 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &. (~w__5)))
+
+let wSP ((), value) =
+ read_reg_bitfield SPSel "SP" >>= fun w__0 ->
+ if bitU_to_bool (eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then write_reg SP_EL0 (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else
+ read_reg_field CurrentEL "EL" >>= fun pstate_el ->
+ if bitU_to_bool (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL0))
+ then
+ write_reg SP_EL0 (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL1))
+ then
+ write_reg
+ SP_EL1
+ (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL2))
+ then
+ write_reg
+ SP_EL2
+ (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL3))
+ then
+ write_reg
+ SP_EL3
+ (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else return (assert' B0 (Nothing))
+
+let decodeTMCommit () = Just (TMCommit)
+
+let decodeTMTest () = Just (TMTest)
+
+let decodeTMAbort ((Vector [R;_;_;_;_;_] _ _) as v__975) =
+ let imm5 = slice_raw v__975 (1:ii) (5:ii) in
+ Just (TMAbort (R,reset_vector_start imm5))
+
+let wV (n, value) =
+ write_reg
+ (access _V n)
+ (ZeroExtend ((128:ii),reset_vector_start (set_vector_start_to_length value)))
+
+let wVpart (n, part, value) =
+ if bitU_to_bool (eq_range (part, (0:ii)))
+ then
+ write_reg
+ (access _V n)
+ (ZeroExtend ((128:ii),reset_vector_start (set_vector_start_to_length value)))
+ else
+ let _ =
+ assert' (eq_range
+ (length
+ (reset_vector_start (set_vector_start_to_length
+ (to_vec_dec (length value,(0:ii))))),
+ (64:ii))) (Nothing) in
+ write_reg_range (access _V n) (127:ii) (64:ii) (set_vector_start 127 value)
+
+let wX (n, value) =
+ if bitU_to_bool (neq_range (n, (31:ii)))
+ then
+ write_reg
+ (access _R n)
+ (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else return ()
+
+let decodeAdvSIMDLoadStoreMultiStruct machineCode =
+ not_implemented "decodeAdvSIMDLoadStoreMultiStruct" >>
+ return (Just (Unallocated))
+
+let decodeAdvSIMDLoadStoreMultiStructPostIndexed machineCode =
+ not_implemented "decodeAdvSIMDLoadStoreMultiStructPostIndexed" >>
+ return (Just (Unallocated))
+
+let decodeAdvSIMDLoadStoreSingleStruct machineCode =
+ not_implemented "decodeAdvSIMDLoadStoreSingleStruct" >>
+ return (Just (Unallocated))
+
+let decodeAdvSIMDLoadStoreSingleStructPostIndexed machineCode =
+ not_implemented "decodeAdvSIMDLoadStoreSingleStructPostIndexed" >>
+ return (Just (Unallocated))
+
+let decodeDataSIMDFPoint1 machineCode =
+ not_implemented "decodeDataSIMDFPoint1" >>
+ return (Just (Unallocated))
+
+let decodeDataSIMDFPoint2 machineCode =
+ not_implemented "decodeDataSIMDFPoint2" >>
+ return (Just (Unallocated))
+
+let AArch64_CheckForWFxTrap (target_el, is_wfe) =
+ let _ = assert' (HaveEL (reset_vector_start target_el)) (Nothing) in
+ let trap = B0 in
+ (if bitU_to_bool (eq_vec (set_vector_start_to_length target_el, set_vector_start_to_length EL1))
+ then
+ (if bitU_to_bool is_wfe
+ then
+ read_reg_bitfield SCTLR_EL1 "nTWE" >>= fun w__0 ->
+ return (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end)
+ else
+ read_reg_bitfield SCTLR_EL1 "nTWI" >>= fun w__1 ->
+ return (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end)) >>= fun w__2 ->
+ let trap = eq (w__2, (0:ii)) in
+ return trap
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length target_el, set_vector_start_to_length EL2))
+ then
+ (if bitU_to_bool is_wfe
+ then
+ read_reg_bitfield HCR_EL2 "TWE" >>= fun w__3 ->
+ return (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end)
+ else
+ read_reg_bitfield HCR_EL2 "TWI" >>= fun w__4 ->
+ return (match w__4 with | B0 -> (0:ii) | B1 -> (1:ii) end)) >>= fun w__5 ->
+ let trap = eq (w__5, (1:ii)) in
+ return trap
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length target_el, set_vector_start_to_length EL3))
+ then
+ (if bitU_to_bool is_wfe
+ then
+ read_reg_bitfield SCR_EL3 "TWE" >>= fun w__6 ->
+ return (match w__6 with | B0 -> (0:ii) | B1 -> (1:ii) end)
+ else
+ read_reg_bitfield SCR_EL3 "TWI" >>= fun w__7 ->
+ return (match w__7 with | B0 -> (0:ii) | B1 -> (1:ii) end)) >>= fun w__8 ->
+ let trap = eq (w__8, (1:ii)) in
+ return trap
+ else
+ let _ = assert' B0 (Nothing) in
+ return trap) >>= fun trap ->
+ if bitU_to_bool trap
+ then AArch64_WFxTrap (reset_vector_start target_el,is_wfe)
+ else return ()
+
+let wmem_kind (acctype, exclusive) =
+ if bitU_to_bool exclusive
+ then
+ match acctype with
+ | AccType_ATOMIC -> return (IK_mem_write Write_exclusive)
+ | AccType_ORDERED -> return (IK_mem_write Write_exclusive_release)
+ | _ ->
+ not_implemented "unimplemented memory access" >>
+ return (IK_mem_write Write_exclusive)
+ end
+ else
+ match acctype with
+ | AccType_NORMAL -> return (IK_mem_write Write_plain)
+ | AccType_STREAM -> return (IK_mem_write Write_plain)
+ | AccType_UNPRIV -> return (IK_mem_write Write_plain)
+ | AccType_ORDERED -> return (IK_mem_write Write_release)
+ | _ ->
+ not_implemented "unimplemented memory access" >>
+ return (IK_mem_write Write_plain)
+ end
+
+let BranchTo (target, branch_type) =
+ let target' = set_vector_start_to_length target in
+ let _ = Hint_Branch branch_type in
+ (if bitU_to_bool
+ (eq_range (length (reset_vector_start (set_vector_start_to_length target)), (32:ii)))
+ then
+ let _ = assert' (UsingAArch32 ()) (Nothing) in
+ write_reg _PC (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length target))) >>
+ return target'
+ else
+ let _ =
+ assert' ((eq_range (length (reset_vector_start (set_vector_start_to_length target)), (64:ii))) &.
+ (~(UsingAArch32 ()))) (Nothing) in
+ read_reg_field CurrentEL "EL" >>= fun pstate_el ->
+ (if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL0))
+ then
+ read_reg_bitfield TCR_EL1 "TBI1" >>= fun w__0 ->
+ let target' =
+ if bitU_to_bool
+ ((eq
+ (match (access (set_vector_start_to_length target') (55:ii)) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (1:ii))) &. (eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B1;B1;B1;B1;B1;B1;B1;B1] 7 false))
+ else target' in
+ read_reg_bitfield TCR_EL1 "TBI0" >>= fun w__1 ->
+ let target' =
+ if bitU_to_bool
+ ((eq
+ (match (access (set_vector_start_to_length target') (55:ii)) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (0:ii))) &. (eq (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B0;B0;B0;B0;B0;B0;B0;B0] 7 false))
+ else target' in
+ return target'
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL1))
+ then
+ read_reg_bitfield TCR_EL1 "TBI1" >>= fun w__2 ->
+ let target' =
+ if bitU_to_bool
+ ((eq
+ (match (access (set_vector_start_to_length target') (55:ii)) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (1:ii))) &. (eq (match w__2 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B1;B1;B1;B1;B1;B1;B1;B1] 7 false))
+ else target' in
+ read_reg_bitfield TCR_EL1 "TBI0" >>= fun w__3 ->
+ let target' =
+ if bitU_to_bool
+ ((eq
+ (match (access (set_vector_start_to_length target') (55:ii)) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (0:ii))) &. (eq (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B0;B0;B0;B0;B0;B0;B0;B0] 7 false))
+ else target' in
+ return target'
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL2))
+ then
+ read_reg_bitfield TCR_EL2 "TBI" >>= fun w__4 ->
+ let target' =
+ if bitU_to_bool (eq (match w__4 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B0;B0;B0;B0;B0;B0;B0;B0] 7 false))
+ else target' in
+ return target'
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL3))
+ then
+ read_reg_bitfield TCR_EL3 "TBI" >>= fun w__5 ->
+ let target' =
+ if bitU_to_bool (eq (match w__5 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B0;B0;B0;B0;B0;B0;B0;B0] 7 false))
+ else target' in
+ return target'
+ else return target') >>= fun target' ->
+ write_reg _PC target' >>
+ return target') >>= fun target' ->
+ return ()
+
+let rmem_kind (acctype, exclusive) =
+ if bitU_to_bool exclusive
+ then
+ match acctype with
+ | AccType_ATOMIC -> return (IK_mem_read Read_exclusive)
+ | AccType_ORDERED -> return (IK_mem_read Read_exclusive_acquire)
+ | _ ->
+ not_implemented "unimplemented memory access" >>
+ return (IK_mem_read Read_exclusive)
+ end
+ else
+ return (match acctype with
+ | AccType_NORMAL -> IK_mem_read Read_plain
+ | AccType_ATOMIC -> IK_mem_read Read_plain
+ | AccType_STREAM -> IK_mem_read Read_stream
+ | AccType_UNPRIV -> IK_mem_read Read_plain
+ | AccType_ORDERED -> IK_mem_read Read_acquire
+ end)
+
+let decodeTMStart Rt =
+ let t = UInt_reg (reset_vector_start Rt) in
+ Just (TMStart t)
+
+let decodeAddSubtractWithCarry ((Vector [sf;op;S;B1;B1;B0;B1;B0;B0;B0;B0;_;_;_;_;_;B0;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__969) =
+ let Rm = slice_raw v__969 (11:ii) (15:ii) in
+ let Rn = slice_raw v__969 (22:ii) (26:ii) in
+ let Rd = slice_raw v__969 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let setflags = eq (match S with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ Just (AddSubCarry (d,n,m,datasize,sub_op,setflags))
+
+let decodeConditionalCompareRegister ((Vector [sf;op;B1;B1;B1;B0;B1;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;B0;B0;_;_;_;_;_;B0;_;_;_;_] _ _) as v__961) =
+ let Rm = slice_raw v__961 (11:ii) (15:ii) in
+ let _cond = slice_raw v__961 (16:ii) (19:ii) in
+ let Rn = slice_raw v__961 (22:ii) (26:ii) in
+ let nzcv = slice_raw v__961 (28:ii) (31:ii) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let condition = set_vector_start 3 _cond in
+ let flags = set_vector_start 3 nzcv in
+ Just (ConditionalCompareRegister (n,m,datasize,sub_op,reset_vector_start condition,reset_vector_start flags))
+
+let decodeConditionalSelect ((Vector [sf;op;B0;B1;B1;B0;B1;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;B0;o2;_;_;_;_;_;_;_;_;_;_] _ _) as v__954) =
+ let Rm = slice_raw v__954 (11:ii) (15:ii) in
+ let _cond = slice_raw v__954 (16:ii) (19:ii) in
+ let Rn = slice_raw v__954 (22:ii) (26:ii) in
+ let Rd = slice_raw v__954 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let condition = set_vector_start 3 _cond in
+ let else_inv = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let else_inc = eq (match o2 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ Just (ConditionalSelect (d,n,m,datasize,reset_vector_start condition,else_inv,else_inc))
+
+let BranchToFP (iR, oR) =
+ (if bitU_to_bool (UsingAArch32 ())
+ then iR
+ else PSTATE_ELfp :: iR,_PCfp :: oR)
+
+let decodeImplementationDefined = function
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B1;B0;B1;B1;B1;_;B1;B1;B0;B0;B0;B0;B0;B0;B0;B0;B0;B0;B0;isEnd] _ _) as v__920) ->
+ Just (ImplementationDefinedTestBeginEnd isEnd)
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B1;B0;B1;B1;B1;_;B1;B1;B0;B0;B0;B0;B0;B0;B0;B0;B0;B0;B1;B0] _ _) as v__932) ->
+ Just (ImplementationDefinedStopFetching)
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B1;B0;B1;B1;B1;_;B1;B1;B0;B0;B0;B0;B0;B0;B0;B0;B0;B0;B1;B1] _ _) as v__943) ->
+ Just (ImplementationDefinedThreadStart)
+ end
+
+let NZCVfp = [PSTATE_Vfp;PSTATE_Cfp;PSTATE_Zfp;PSTATE_Nfp]
+
+let decodeConditionalCompareImmediate ((Vector [sf;op;B1;B1;B1;B0;B1;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;B1;B0;_;_;_;_;_;B0;_;_;_;_] _ _) as v__912) =
+ let imm5 = slice_raw v__912 (11:ii) (15:ii) in
+ let _cond = slice_raw v__912 (16:ii) (19:ii) in
+ let Rn = slice_raw v__912 (22:ii) (26:ii) in
+ let nzcv = slice_raw v__912 (28:ii) (31:ii) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let condition = set_vector_start 3 _cond in
+ let flags = set_vector_start 3 nzcv in
+ let imm =
+ set_vector_start_to_length
+ (ZeroExtend (datasize,reset_vector_start (set_vector_start_to_length imm5))) in
+ Just (ConditionalCompareImmediate (n,datasize,sub_op,reset_vector_start condition,reset_vector_start flags,reset_vector_start (set_vector_start_to_length
+ imm)))
+
+let decodeMoveWideImmediate ((Vector [sf;_;_;B1;B0;B0;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__909) =
+ let opc = slice_raw v__909 (1:ii) (2:ii) in
+ let hw = slice_raw v__909 (9:ii) (10:ii) in
+ let imm16 = slice_raw v__909 (11:ii) (26:ii) in
+ let Rd = slice_raw v__909 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let imm = imm16 in
+ let pos = (0:ii) in
+ let opcode =
+ match toNatural (0:ii) with
+ | (0:nn) -> MoveWideOp_N
+ | (1:nn) -> MoveWideOp_Z
+ | (2:nn) -> MoveWideOp_K
+ end in
+ match opc with
+ | Vector [B0;B0] _ _ -> return MoveWideOp_N
+ | Vector [B1;B0] _ _ -> return MoveWideOp_Z
+ | Vector [B1;B1] _ _ -> return MoveWideOp_K
+ | _ ->
+ UnallocatedEncoding () >>
+ return opcode
+ end >>= fun opcode ->
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (eq (match (access hw (1:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let pos =
+ UInt
+ (reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length hw) ^^
+ (set_vector_start_to_length (Vector [B0;B0;B0;B0] 3 false))))) in
+ return (Just (MoveWide (d,datasize,reset_vector_start imm,pos,opcode)))
+
+let decodeLoadStoreExclusive ((Vector [_;_;B0;B0;B1;B0;B0;B0;o2;L;o1;_;_;_;_;_;o0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__903) =
+ let size = slice_raw v__903 (0:ii) (1:ii) in
+ let Rs = slice_raw v__903 (11:ii) (15:ii) in
+ let Rt2 = slice_raw v__903 (17:ii) (21:ii) in
+ let Rn = slice_raw v__903 (22:ii) (26:ii) in
+ let Rt = slice_raw v__903 (27:ii) (31:ii) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let t2 = UInt_reg (reset_vector_start Rt2) in
+ let s = UInt_reg (reset_vector_start Rs) in
+ (if bitU_to_bool
+ ((eq_vec
+ (set_vector_start_to_length (Vector [o2;o1;o0] 2 false),
+ set_vector_start_to_length (Vector [B1;B0;B0] 2 false))) |.
+ (eq_vec
+ (set_vector_start_to_length (Vector [o2;o1] 1 false),
+ set_vector_start_to_length (Vector [B1;B1] 1 false))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (match o1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ (eq (match (access size (1:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let acctype =
+ if bitU_to_bool (eq (match o0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then AccType_ORDERED
+ else AccType_ATOMIC in
+ let excl = eq (match o2 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ let pair = eq (match o1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let memop =
+ if bitU_to_bool (eq (match L with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then MemOp_LOAD
+ else MemOp_STORE in
+ let elsize = lsl' ((8:ii),UInt (reset_vector_start (set_vector_start_to_length size))) in
+ let regsize = if bitU_to_bool (eq_range (elsize, (64:ii))) then (64:ii) else (32:ii) in
+ let datasize = if bitU_to_bool pair then elsize * (2:ii) else elsize in
+ return (Just (LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize)))
+
+let sharedDecodeLoadImmediate (opc, size, Rn, Rt, wback, postindex, scale, offset, acctype, prefetchAllowed) =
+ let n = UInt_reg Rn in
+ let t = UInt_reg Rt in
+ let memop =
+ match toNatural (0:ii) with
+ | (0:nn) -> MemOp_LOAD
+ | (1:nn) -> MemOp_STORE
+ | (2:nn) -> MemOp_PREFETCH
+ end in
+ let _signed = B0 in
+ let regsize = (64:ii) in
+ (if bitU_to_bool (eq (match (access opc (1:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then
+ let memop =
+ if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then MemOp_LOAD
+ else MemOp_STORE in
+ let regsize =
+ if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B1] 1 false)))
+ then (64:ii)
+ else (32:ii) in
+ let _signed = B0 in
+ return (memop,regsize,_signed)
+ else
+ (if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B1] 1 false)))
+ then
+ (if bitU_to_bool prefetchAllowed
+ then
+ let memop = MemOp_PREFETCH in
+ (if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ return memop
+ else
+ UnallocatedEncoding () >>
+ return memop) >>= fun memop ->
+ return (regsize,_signed,memop)
+ else
+ let memop = MemOp_LOAD in
+ (if bitU_to_bool
+ ((eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B0] 1 false))) &.
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let regsize =
+ if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (32:ii)
+ else (64:ii) in
+ let _signed = B1 in
+ return (regsize,_signed,memop)) >>= fun (regsize, _signed, memop) ->
+ return (memop,regsize,_signed)) >>= fun (memop, regsize, _signed) ->
+ let datasize = lsl' ((8:ii),scale) in
+ return (Just (LoadImmediate (n,t,acctype,memop,_signed,wback,postindex,reset_vector_start offset,regsize,datasize)))
+
+let sharedDecodeLoadRegister (Rn, Rt, Rm, opc, size, wback, postindex, scale, extend_type, shift) =
+ let n = UInt_reg Rn in
+ let t = UInt_reg Rt in
+ let m = UInt_reg Rm in
+ let acctype = AccType_NORMAL in
+ let memop =
+ match toNatural (0:ii) with
+ | (0:nn) -> MemOp_LOAD
+ | (1:nn) -> MemOp_STORE
+ | (2:nn) -> MemOp_PREFETCH
+ end in
+ let _signed = B0 in
+ let regsize = (64:ii) in
+ (if bitU_to_bool (eq (match (access opc (1:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then
+ let memop =
+ if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then MemOp_LOAD
+ else MemOp_STORE in
+ let regsize =
+ if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B1] 1 false)))
+ then (64:ii)
+ else (32:ii) in
+ let _signed = B0 in
+ return (memop,regsize,_signed)
+ else
+ (if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B1] 1 false)))
+ then
+ let memop = MemOp_PREFETCH in
+ (if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ return (regsize,_signed,memop)
+ else
+ let memop = MemOp_LOAD in
+ (if bitU_to_bool
+ ((eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B0] 1 false))) &.
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let regsize =
+ if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (32:ii)
+ else (64:ii) in
+ let _signed = B1 in
+ return (regsize,_signed,memop)) >>= fun (regsize, _signed, memop) ->
+ return (memop,regsize,_signed)) >>= fun (memop, regsize, _signed) ->
+ let datasize = lsl' ((8:ii),scale) in
+ return (Just (LoadRegister (n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize)))
+
+let ConditionHoldsIFP _cond =
+ match (slice _cond (3:ii) (1:ii)) with
+ | Vector [B0;B0;B0] _ _ -> [PSTATE_Zfp]
+ | Vector [B0;B0;B1] _ _ -> [PSTATE_Cfp]
+ | Vector [B0;B1;B0] _ _ -> [PSTATE_Nfp]
+ | Vector [B0;B1;B1] _ _ -> [PSTATE_Vfp]
+ | Vector [B1;B0;B0] _ _ -> [PSTATE_Zfp;PSTATE_Cfp]
+ | Vector [B1;B0;B1] _ _ -> [PSTATE_Vfp;PSTATE_Nfp]
+ | Vector [B1;B1;B0] _ _ -> [PSTATE_Zfp;PSTATE_Vfp;PSTATE_Nfp]
+ | Vector [B1;B1;B1] _ _ -> []
+ end
+
+let decodeAddSubtractImmediate ((Vector [sf;op;S;B1;B0;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__898) =
+ let shift = slice_raw v__898 (8:ii) (9:ii) in
+ let imm12 = slice_raw v__898 (10:ii) (21:ii) in
+ let Rn = slice_raw v__898 (22:ii) (26:ii) in
+ let Rd = slice_raw v__898 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let setflags = eq (match S with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let imm = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ match shift with
+ | Vector [B0;B0] _ _ ->
+ let imm =
+ set_vector_start_to_length
+ (ZeroExtend (datasize,reset_vector_start (set_vector_start_to_length imm12))) in
+ return imm
+ | Vector [B0;B1] _ _ ->
+ let imm =
+ set_vector_start_to_length
+ (ZeroExtend
+ (datasize,
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm12) ^^
+ (set_vector_start_to_length
+ (duplicate_bits (set_vector_start_to_length (Vector [B0] 0 false), (12:ii)))))))) in
+ return imm
+ | Vector [B1;_] _ _ ->
+ ReservedValue () >>
+ return imm
+ end >>= fun imm ->
+ return (Just (AddSubImmediate (d,n,datasize,sub_op,setflags,reset_vector_start (set_vector_start_to_length
+ imm))))
+
+let decodeData3Source = function
+ | ((Vector [sf;B0;B0;B1;B1;B0;B1;B1;B0;B0;B0;_;_;_;_;_;o0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__878) ->
+ let Rm = slice_raw v__878 (11:ii) (15:ii) in
+ let Ra = slice_raw v__878 (17:ii) (21:ii) in
+ let Rn = slice_raw v__878 (22:ii) (26:ii) in
+ let Rd = slice_raw v__878 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let a = UInt_reg (reset_vector_start Ra) in
+ let destsize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let datasize = destsize in
+ let sub_op = eq (match o0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ Just (MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op))
+ | ((Vector [B1;B0;B0;B1;B1;B0;B1;B1;U;B0;B1;_;_;_;_;_;o0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__884) ->
+ let Rm = slice_raw v__884 (11:ii) (15:ii) in
+ let Ra = slice_raw v__884 (17:ii) (21:ii) in
+ let Rn = slice_raw v__884 (22:ii) (26:ii) in
+ let Rd = slice_raw v__884 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let a = UInt_reg (reset_vector_start Ra) in
+ let destsize = (64:ii) in
+ let datasize = (32:ii) in
+ let sub_op = eq (match o0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let _unsigned = eq (match U with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ Just (MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,_unsigned))
+ | ((Vector [B1;B0;B0;B1;B1;B0;B1;B1;U;B1;B0;_;_;_;_;_;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__891) ->
+ let Rm = slice_raw v__891 (11:ii) (15:ii) in
+ let Ra = slice_raw v__891 (17:ii) (21:ii) in
+ let Rn = slice_raw v__891 (22:ii) (26:ii) in
+ let Rd = slice_raw v__891 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let a = UInt_reg (reset_vector_start Ra) in
+ let destsize = (64:ii) in
+ let datasize = destsize in
+ let _unsigned = eq (match U with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ Just (MultiplyHigh (d,n,m,a,destsize,datasize,_unsigned))
+ end
+
+let decodeExtract ((Vector [sf;B0;B0;B1;B0;B0;B1;B1;B1;N;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__872) =
+ let Rm = slice_raw v__872 (11:ii) (15:ii) in
+ let imms = slice_raw v__872 (16:ii) (21:ii) in
+ let Rn = slice_raw v__872 (22:ii) (26:ii) in
+ let Rd = slice_raw v__872 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let lsb = (0:ii) in
+ (if bitU_to_bool (neq_bit (N, sf))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (eq (match (access imms (5:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then ReservedValue ()
+ else return ()) >>
+ let lsb = UInt (reset_vector_start (set_vector_start_to_length imms)) in
+ return (Just (ExtractRegister (d,n,m,datasize,lsb)))
+
+let decodeAddSubtractExtendedRegister ((Vector [sf;op;S;B0;B1;B0;B1;B1;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__865) =
+ let Rm = slice_raw v__865 (11:ii) (15:ii) in
+ let option_v = slice_raw v__865 (16:ii) (18:ii) in
+ let imm3 = slice_raw v__865 (19:ii) (21:ii) in
+ let Rn = slice_raw v__865 (22:ii) (26:ii) in
+ let Rd = slice_raw v__865 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let setflags = eq (match S with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let extend_type = DecodeRegExtend (reset_vector_start (set_vector_start 2 option_v)) in
+ let shift = UInt (reset_vector_start (set_vector_start_to_length imm3)) in
+ (if bitU_to_bool (gt (shift, (4:ii)))
+ then ReservedValue ()
+ else return ()) >>
+ return (Just (AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift)))
+
+let decodeAddSubtractShiftedRegister ((Vector [sf;op;S;B0;B1;B0;B1;B1;_;_;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__859) =
+ let shift = slice_raw v__859 (8:ii) (9:ii) in
+ let Rm = slice_raw v__859 (11:ii) (15:ii) in
+ let imm6 = slice_raw v__859 (16:ii) (21:ii) in
+ let Rn = slice_raw v__859 (22:ii) (26:ii) in
+ let Rd = slice_raw v__859 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let setflags = eq (match S with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ (if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length shift,
+ set_vector_start_to_length (Vector [B1;B1] 1 false)))
+ then ReservedValue ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (eq (match (access imm6 (5:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then ReservedValue ()
+ else return ()) >>
+ let shift_type = DecodeShift (reset_vector_start (set_vector_start 1 shift)) in
+ let shift_amount = UInt (reset_vector_start (set_vector_start_to_length imm6)) in
+ return (Just (AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount)))
+
+let decodeLogicalShiftedRegister ((Vector [sf;_;_;B0;B1;B0;B1;B0;_;_;N;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__855) =
+ let opc = slice_raw v__855 (1:ii) (2:ii) in
+ let shift = slice_raw v__855 (8:ii) (9:ii) in
+ let Rm = slice_raw v__855 (11:ii) (15:ii) in
+ let imm6 = slice_raw v__855 (16:ii) (21:ii) in
+ let Rn = slice_raw v__855 (22:ii) (26:ii) in
+ let Rd = slice_raw v__855 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let setflags = B0 in
+ let op = LogicalOp_AND in
+ let (op, setflags) =
+ match opc with
+ | Vector [B0;B0] _ _ ->
+ let op = LogicalOp_AND in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B0;B1] _ _ ->
+ let op = LogicalOp_ORR in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B1;B0] _ _ ->
+ let op = LogicalOp_EOR in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B1;B1] _ _ ->
+ let op = LogicalOp_AND in
+ let setflags = B1 in
+ (op,setflags)
+ end in
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (eq (match (access imm6 (5:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then ReservedValue ()
+ else return ()) >>
+ let shift_type = DecodeShift (reset_vector_start (set_vector_start 1 shift)) in
+ let shift_amount = UInt (reset_vector_start (set_vector_start_to_length imm6)) in
+ let invert = eq (match N with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return (Just (LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert)))
+
+let decodeData1Source = function
+ | ((Vector [sf;B1;B0;B1;B1;B0;B1;B0;B1;B1;B0;B0;B0;B0;B0;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__840) ->
+ let opc = slice_raw v__840 (20:ii) (21:ii) in
+ let Rn = slice_raw v__840 (22:ii) (26:ii) in
+ let Rd = slice_raw v__840 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let op =
+ match toNatural (0:ii) with
+ | (0:nn) -> RevOp_RBIT
+ | (1:nn) -> RevOp_REV16
+ | (2:nn) -> RevOp_REV32
+ | (3:nn) -> RevOp_REV64
+ end in
+ match opc with
+ | Vector [B0;B0] _ _ -> return RevOp_RBIT
+ | Vector [B0;B1] _ _ -> return RevOp_REV16
+ | Vector [B1;B0] _ _ -> return RevOp_REV32
+ | Vector [B1;B1] _ _ ->
+ (if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ return RevOp_REV64
+ end >>= fun op ->
+ return (Just (Reverse (d,n,datasize,op)))
+ | ((Vector [sf;B1;B0;B1;B1;B0;B1;B0;B1;B1;B0;B0;B0;B0;B0;B0;B0;B0;B0;B1;B0;op;_;_;_;_;_;_;_;_;_;_] _ _) as v__847) ->
+ let Rn = slice_raw v__847 (22:ii) (26:ii) in
+ let Rd = slice_raw v__847 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let opcode =
+ if bitU_to_bool (eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then CountOp_CLZ
+ else CountOp_CLS in
+ return (Just (CountLeading (d,n,datasize,opcode)))
+ end
+
+let decodeUnconditionalBranchRegister = function
+ | ((Vector [B1;B1;B0;B1;B0;B1;B1;B0;B0;_;_;B1;B1;B1;B1;B1;B0;B0;B0;B0;B0;B0;_;_;_;_;_;B0;B0;B0;B0;B0] _ _) as v__820) ->
+ let op = slice_raw v__820 (9:ii) (10:ii) in
+ let Rn = slice_raw v__820 (22:ii) (26:ii) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let branch_type =
+ match toNatural (0:ii) with
+ | (0:nn) -> BranchType_CALL
+ | (1:nn) -> BranchType_ERET
+ | (2:nn) -> BranchType_DBGEXIT
+ | (3:nn) -> BranchType_RET
+ | (4:nn) -> BranchType_JMP
+ | (5:nn) -> BranchType_EXCEPTION
+ | (6:nn) -> BranchType_UNKNOWN
+ end in
+ match op with
+ | Vector [B0;B0] _ _ -> return BranchType_JMP
+ | Vector [B0;B1] _ _ -> return BranchType_CALL
+ | Vector [B1;B0] _ _ -> return BranchType_RET
+ | _ ->
+ UnallocatedEncoding () >>
+ return branch_type
+ end >>= fun branch_type ->
+ return (Just (BranchRegister (n,branch_type)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B1;B0;B1;B0;B0;B1;B1;B1;B1;B1;B0;B0;B0;B0;B0;B0;B1;B1;B1;B1;B1;B0;B0;B0;B0;B0] _ _) as v__826) ->
+ return (Just (ExceptionReturn))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B1;B0;B1;B0;B1;B1;B1;B1;B1;B1;B0;B0;B0;B0;B0;B0;B1;B1;B1;B1;B1;B0;B0;B0;B0;B0] _ _) as v__833) ->
+ return (Just (DebugRestorePState))
+ end
+
+let decodeData2Source = function
+ | ((Vector [sf;B0;B0;B1;B1;B0;B1;B0;B1;B1;B0;_;_;_;_;_;B0;B0;B0;B0;B1;o1;_;_;_;_;_;_;_;_;_;_] _ _) as v__800) ->
+ let Rm = slice_raw v__800 (11:ii) (15:ii) in
+ let Rn = slice_raw v__800 (22:ii) (26:ii) in
+ let Rd = slice_raw v__800 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let _unsigned = eq (match o1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ return (Just (Division (d,n,m,datasize,_unsigned)))
+ | ((Vector [sf;B0;B0;B1;B1;B0;B1;B0;B1;B1;B0;_;_;_;_;_;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__807) ->
+ let Rm = slice_raw v__807 (11:ii) (15:ii) in
+ let op2 = slice_raw v__807 (20:ii) (21:ii) in
+ let Rn = slice_raw v__807 (22:ii) (26:ii) in
+ let Rd = slice_raw v__807 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let shift_type = DecodeShift (reset_vector_start (set_vector_start 1 op2)) in
+ return (Just (Shift (d,n,m,datasize,shift_type)))
+ | ((Vector [sf;B0;B0;B1;B1;B0;B1;B0;B1;B1;B0;_;_;_;_;_;B0;B1;B0;C;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__813) ->
+ let Rm = slice_raw v__813 (11:ii) (15:ii) in
+ let sz = slice_raw v__813 (20:ii) (21:ii) in
+ let Rn = slice_raw v__813 (22:ii) (26:ii) in
+ let Rd = slice_raw v__813 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ (neq_vec
+ (set_vector_start_to_length sz,
+ set_vector_start_to_length (Vector [B1;B1] 1 false))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (eq_vec
+ (set_vector_start_to_length sz,
+ set_vector_start_to_length (Vector [B1;B1] 1 false))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let size = lsl' ((8:ii),UInt (reset_vector_start (set_vector_start_to_length sz))) in
+ let crc32c = eq (match C with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return (Just (CRC (d,n,m,size,crc32c)))
+ end
+
+let decodeExceptionGeneration = function
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;B0;B1] _ _) as v__771) ->
+ let imm16 = slice_raw v__771 (11:ii) (26:ii) in
+ let imm = imm16 in
+ return (Just (GenerateExceptionEL1 (reset_vector_start imm)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;B1;B0] _ _) as v__776) ->
+ let imm16 = slice_raw v__776 (11:ii) (26:ii) in
+ let imm = imm16 in
+ return (Just (GenerateExceptionEL2 (reset_vector_start imm)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;B1;B1] _ _) as v__781) ->
+ let imm16 = slice_raw v__781 (11:ii) (26:ii) in
+ let imm = imm16 in
+ return (Just (GenerateExceptionEL3 (reset_vector_start imm)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;B0;B0] _ _) as v__786) ->
+ let imm16 = slice_raw v__786 (11:ii) (26:ii) in
+ let comment = imm16 in
+ return (Just (DebugBreakpoint (reset_vector_start comment)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;B0;B0] _ _) as v__791) ->
+ let imm16 = slice_raw v__791 (11:ii) (26:ii) in
+ return (Just (ExternalDebugBreakpoint))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;_;_] _ _) as v__796) ->
+ let imm16 = slice_raw v__796 (11:ii) (26:ii) in
+ let LL = slice_raw v__796 (30:ii) (31:ii) in
+ let target_level = LL in
+ (if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length LL,
+ set_vector_start_to_length (Vector [B0;B0] 1 false)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ return (Just (DebugSwitchToExceptionLevel (reset_vector_start target_level)))
+ end
+
+let decodeSystem = function
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;_;_;_;B0;B1;B0;B0;_;_;_;_;_;_;_;B1;B1;B1;B1;B1] _ _) as v__706) ->
+ let op1 = slice_raw v__706 (13:ii) (15:ii) in
+ let CRm = slice_raw v__706 (20:ii) (23:ii) in
+ let op2 = slice_raw v__706 (24:ii) (26:ii) in
+ let operand = set_vector_start 3 CRm in
+ let field' =
+ match toNatural (0:ii) with
+ | (0:nn) -> PSTATEField_DAIFSet
+ | (1:nn) -> PSTATEField_DAIFClr
+ | (2:nn) -> PSTATEField_SP
+ end in
+ match ((set_vector_start_to_length op1) ^^ (set_vector_start_to_length op2)) with
+ | ((Vector [B0;B0;B0;B1;B0;B1] _ _) as v__712) -> return PSTATEField_SP
+ | ((Vector [B0;B1;B1;B1;B1;B0] _ _) as v__715) -> return PSTATEField_DAIFSet
+ | ((Vector [B0;B1;B1;B1;B1;B1] _ _) as v__718) -> return PSTATEField_DAIFClr
+ | _ ->
+ UnallocatedEncoding () >>
+ return field'
+ end >>= fun field' ->
+ return (Just (MoveSystemImmediate (reset_vector_start operand,field')))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;B0;B1;B1;B0;B0;B1;B0;_;_;_;_;_;_;_;B1;B1;B1;B1;B1] _ _) as v__721) ->
+ let CRm = slice_raw v__721 (20:ii) (23:ii) in
+ let op2 = slice_raw v__721 (24:ii) (26:ii) in
+ let op =
+ match toNatural (0:ii) with
+ | (0:nn) -> SystemHintOp_NOP
+ | (1:nn) -> SystemHintOp_YIELD
+ | (2:nn) -> SystemHintOp_WFE
+ | (3:nn) -> SystemHintOp_WFI
+ | (4:nn) -> SystemHintOp_SEV
+ | (5:nn) -> SystemHintOp_SEVL
+ end in
+ let op =
+ match ((set_vector_start_to_length CRm) ^^ (set_vector_start_to_length op2)) with
+ | ((Vector [B0;B0;B0;B0;B0;B0;B0] _ _) as v__728) -> SystemHintOp_NOP
+ | ((Vector [B0;B0;B0;B0;B0;B0;B1] _ _) as v__731) -> SystemHintOp_YIELD
+ | ((Vector [B0;B0;B0;B0;B0;B1;B0] _ _) as v__734) -> SystemHintOp_WFE
+ | ((Vector [B0;B0;B0;B0;B0;B1;B1] _ _) as v__737) -> SystemHintOp_WFI
+ | ((Vector [B0;B0;B0;B0;B1;B0;B0] _ _) as v__740) -> SystemHintOp_SEV
+ | ((Vector [B0;B0;B0;B0;B1;B0;B1] _ _) as v__743) -> SystemHintOp_SEVL
+ | _ -> SystemHintOp_NOP
+ end in
+ return (Just (Hint op))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;B0;B1;B1;B0;B0;B1;B1;_;_;_;_;B0;B1;B0;B1;B1;B1;B1;B1] _ _) as v__746) ->
+ let CRm = slice_raw v__746 (20:ii) (23:ii) in
+ let imm = unsigned (reset_vector_start CRm) in
+ return (Just (ClearExclusiveMonitor imm))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;B0;B1;B1;B0;B0;B1;B1;_;_;_;_;B1;_;_;B1;B1;B1;B1;B1] _ _) as v__754) ->
+ let CRm = slice_raw v__754 (20:ii) (23:ii) in
+ let opc = slice_raw v__754 (25:ii) (26:ii) in
+ let op =
+ match toNatural (0:ii) with
+ | (0:nn) -> MemBarrierOp_DSB
+ | (1:nn) -> MemBarrierOp_DMB
+ | (2:nn) -> MemBarrierOp_ISB
+ end in
+ let domain =
+ match toNatural (0:ii) with
+ | (0:nn) -> MBReqDomain_Nonshareable
+ | (1:nn) -> MBReqDomain_InnerShareable
+ | (2:nn) -> MBReqDomain_OuterShareable
+ | (3:nn) -> MBReqDomain_FullSystem
+ end in
+ let types =
+ match toNatural (0:ii) with
+ | (0:nn) -> MBReqTypes_Reads
+ | (1:nn) -> MBReqTypes_Writes
+ | (2:nn) -> MBReqTypes_All
+ end in
+ match opc with
+ | Vector [B0;B0] _ _ -> return MemBarrierOp_DSB
+ | Vector [B0;B1] _ _ -> return MemBarrierOp_DMB
+ | Vector [B1;B0] _ _ -> return MemBarrierOp_ISB
+ | _ ->
+ UnallocatedEncoding () >>
+ return op
+ end >>= fun op ->
+ let domain =
+ match (slice CRm (3:ii) (2:ii)) with
+ | Vector [B0;B0] _ _ -> MBReqDomain_OuterShareable
+ | Vector [B0;B1] _ _ -> MBReqDomain_Nonshareable
+ | Vector [B1;B0] _ _ -> MBReqDomain_InnerShareable
+ | Vector [B1;B1] _ _ -> MBReqDomain_FullSystem
+ end in
+ let (domain, types) =
+ match (slice CRm (1:ii) (0:ii)) with
+ | Vector [B0;B1] _ _ ->
+ let types = MBReqTypes_Reads in
+ (domain,types)
+ | Vector [B1;B0] _ _ ->
+ let types = MBReqTypes_Writes in
+ (domain,types)
+ | Vector [B1;B1] _ _ ->
+ let types = MBReqTypes_All in
+ (domain,types)
+ | _ ->
+ let types = MBReqTypes_All in
+ let domain = MBReqDomain_FullSystem in
+ (domain,types)
+ end in
+ return (Just (Barrier (op,domain,types)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;L;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__762) ->
+ let op1 = slice_raw v__762 (13:ii) (15:ii) in
+ let CRn = slice_raw v__762 (16:ii) (19:ii) in
+ let CRm = slice_raw v__762 (20:ii) (23:ii) in
+ let op2 = slice_raw v__762 (24:ii) (26:ii) in
+ let Rt = slice_raw v__762 (27:ii) (31:ii) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let sys_op0 = (1:ii) in
+ let sys_op1 = UInt (reset_vector_start (set_vector_start_to_length op1)) in
+ let sys_op2 = UInt (reset_vector_start (set_vector_start_to_length op2)) in
+ let sys_crn = UInt (reset_vector_start (set_vector_start_to_length CRn)) in
+ let sys_crm = UInt (reset_vector_start (set_vector_start_to_length CRm)) in
+ let has_result = eq (match L with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return (Just (System (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;L;B1;o0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__766) ->
+ let op1 = slice_raw v__766 (13:ii) (15:ii) in
+ let CRn = slice_raw v__766 (16:ii) (19:ii) in
+ let CRm = slice_raw v__766 (20:ii) (23:ii) in
+ let op2 = slice_raw v__766 (24:ii) (26:ii) in
+ let Rt = slice_raw v__766 (27:ii) (31:ii) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let sys_op0 =
+ (2:ii) + (UInt (reset_vector_start (set_vector_start_to_length (Vector [o0] 0 false)))) in
+ let sys_op1 = UInt (reset_vector_start (set_vector_start_to_length op1)) in
+ let sys_op2 = UInt (reset_vector_start (set_vector_start_to_length op2)) in
+ let sys_crn = UInt (reset_vector_start (set_vector_start_to_length CRn)) in
+ let sys_crm = UInt (reset_vector_start (set_vector_start_to_length CRm)) in
+ let read = eq (match L with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return (Just (MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read)))
+ end
+
+let ASR_C (x, shift) =
+ let extended_x =
+ set_vector_start_to_length
+ (SignExtend (shift + (length x),reset_vector_start (set_vector_start_to_length x))) in
+ let result =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length extended_x)
+ ((shift + (length (reset_vector_start (set_vector_start_to_length x)))) - (1:ii)) shift) in
+ let carry_out = access (set_vector_start_to_length extended_x) (shift - (1:ii)) in
+ (set_vector_start_to_length result,carry_out)
+
+let ASR (x, shift) =
+ let result = set_vector_start_to_length (to_vec_dec (length x,(0:ii))) in
+ if bitU_to_bool (eq_range (shift, (0:ii)))
+ then set_vector_start_to_length x
+ else
+ let (result', _) =
+ match (ASR_C (reset_vector_start (set_vector_start_to_length x),shift)) with
+ | (v0v', v1v') -> (v0v',v1v')
+ end in
+ set_vector_start_to_length result'
+
+let LSR (x, shift) =
+ let result = set_vector_start_to_length (to_vec_dec (length x,(0:ii))) in
+ if bitU_to_bool (eq_range (shift, (0:ii)))
+ then set_vector_start_to_length x
+ else
+ let (result', _) =
+ match (LSR_C (reset_vector_start (set_vector_start_to_length x),shift)) with
+ | (v0v', v1v') -> (v0v',v1v')
+ end in
+ set_vector_start_to_length result'
+
+let AArch64_ResetGeneralRegisters () =
+ (foreachM_inc ((0:ii),(30:ii),(1:ii)) ()
+ (fun i _ ->
+ wX (i,reset_vector_start (set_vector_start_to_length (to_vec_dec ((64:ii),UNKNOWN))))))
+
+let AArch64_ResetSIMDFPRegisters () =
+ (foreachM_inc ((0:ii),(31:ii),(1:ii)) ()
+ (fun i _ ->
+ wV (i,reset_vector_start (set_vector_start_to_length (to_vec_dec ((128:ii),UNKNOWN))))))
+
+let wMem'IFP = BigEndianIFP
+
+let IsFault addrdesc = neq (addrdesc.AddressDescriptor_fault.FaultRecord_type', Fault_None)
+
+let Extend (N', x, unsigned) =
+ if bitU_to_bool unsigned
+ then
+ set_vector_start_to_length (ZeroExtend (N',reset_vector_start (set_vector_start_to_length x)))
+ else
+ set_vector_start_to_length (SignExtend (N',reset_vector_start (set_vector_start_to_length x)))
+
+let _rMem (read_buffer, desc, size, acctype, exclusive) =
+ if bitU_to_bool (eq_range (read_buffer.read_buffer_type_size, (0:ii)))
+ then
+ <| read_buffer_type_acctype = acctype;
+ read_buffer_type_exclusive = exclusive;
+ read_buffer_type_address = desc.AddressDescriptor_paddress.FullAddress_physicaladdress;
+ read_buffer_type_size = size |>
+ else
+ let _ = assert' (eq (read_buffer.read_buffer_type_acctype, acctype)) (Nothing) in
+ let _ = assert' (eq_bit (read_buffer.read_buffer_type_exclusive, exclusive)) (Nothing) in
+ let _ =
+ assert' (eq_vec
+ (set_vector_start_to_length
+ (set_vector_start 63
+ (add_VIV
+ (reset_vector_start (set_vector_start_to_length
+ read_buffer.read_buffer_type_address))
+ read_buffer.read_buffer_type_size)),
+ set_vector_start_to_length
+ desc.AddressDescriptor_paddress.FullAddress_physicaladdress)) (Nothing) in
+ <|read_buffer with read_buffer_type_size = (read_buffer.read_buffer_type_size + size)|>
+
+let CheckSPAlignmentIFP = PSTATE_ELfp :: rSPIFP
+
+let SCR_GEN () =
+ let _ = assert' (HaveEL (reset_vector_start EL3)) (Nothing) in
+ if bitU_to_bool (HighestELUsingAArch32 ())
+ then SCR
+ else SCR_EL3
+
+let AArch64_AlignmentFault (acctype, iswrite, secondstage) =
+ let ipaddress = to_vec_dec ((48:ii),UNKNOWN) in
+ let level = UNKNOWN in
+ let extflag = if bitU_to_bool (is_one UNKNOWN) then B1 else B0 in
+ let s2fs1walk = if bitU_to_bool (is_one UNKNOWN) then B1 else B0 in
+ AArch64_CreateFaultRecord
+ (Fault_Alignment,
+ reset_vector_start ipaddress,
+ level,
+ acctype,
+ iswrite,
+ extflag,
+ secondstage,
+ s2fs1walk)
+
+let AArch64_NoFault () =
+ let ipaddress = to_vec_dec ((48:ii),UNKNOWN) in
+ let level = UNKNOWN in
+ let acctype = AccType_NORMAL in
+ let iswrite = if bitU_to_bool (is_one UNKNOWN) then B1 else B0 in
+ let extflag = if bitU_to_bool (is_one UNKNOWN) then B1 else B0 in
+ let secondstage = B0 in
+ let s2fs1walk = B0 in
+ AArch64_CreateFaultRecord
+ (Fault_None,
+ reset_vector_start ipaddress,
+ level,
+ acctype,
+ iswrite,
+ extflag,
+ secondstage,
+ s2fs1walk)
+
+let decodeConditionalBranchImmediate ((Vector [B0;B1;B0;B1;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;_;_;_;_] _ _) as v__702) =
+ let imm19 = slice_raw v__702 (8:ii) (26:ii) in
+ let _cond = slice_raw v__702 (28:ii) (31:ii) in
+ let offset =
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm19) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false))))) in
+ let condition = set_vector_start 3 _cond in
+ Just (BranchConditional (reset_vector_start offset,reset_vector_start condition))
+
+let _wMem (write_buffer, desc, size, acctype, exclusive, value) =
+ if bitU_to_bool (eq_range (write_buffer.write_buffer_type_size, (0:ii)))
+ then
+ <| write_buffer_type_acctype = acctype;
+ write_buffer_type_exclusive = exclusive;
+ write_buffer_type_address = desc.AddressDescriptor_paddress.FullAddress_physicaladdress;
+ write_buffer_type_value =
+ (ZeroExtend ((128:ii),reset_vector_start (set_vector_start_to_length value)));
+ write_buffer_type_size = size |>
+ else
+ let _ = assert' (eq (write_buffer.write_buffer_type_acctype, acctype)) (Nothing) in
+ let _ = assert' (eq_bit (write_buffer.write_buffer_type_exclusive, exclusive)) (Nothing) in
+ let _ =
+ assert' (eq_vec
+ (set_vector_start_to_length
+ (set_vector_start 63
+ (add_VIV
+ (reset_vector_start (set_vector_start_to_length
+ write_buffer.write_buffer_type_address))
+ write_buffer.write_buffer_type_size)),
+ set_vector_start_to_length
+ desc.AddressDescriptor_paddress.FullAddress_physicaladdress)) (Nothing) in
+ <|write_buffer with
+ write_buffer_type_value =
+ (ZeroExtend
+ ((128:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length value) ^^
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))))); write_buffer_type_size =
+ (write_buffer.write_buffer_type_size + size)|>
+
+let HaveAArch32EL el =
+ if bitU_to_bool (~(HaveEL (reset_vector_start el)))
+ then B0
+ else
+ if bitU_to_bool (~(HaveAnyAArch32 ()))
+ then B0
+ else
+ if bitU_to_bool (HighestELUsingAArch32 ())
+ then B1
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL0))
+ then B1
+ else IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HaveAArch32EL
+
+let decodeUnconditionalBranchImmediate ((Vector [op;B0;B0;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__699) =
+ let imm26 = slice_raw v__699 (6:ii) (31:ii) in
+ let branch_type =
+ if bitU_to_bool (eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then BranchType_CALL
+ else BranchType_JMP in
+ let offset =
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm26) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false))))) in
+ Just (BranchImmediate (branch_type,reset_vector_start offset))
+
+let decodeCompareBranchImmediate ((Vector [sf;B0;B1;B1;B0;B1;B0;op;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__695) =
+ let imm19 = slice_raw v__695 (8:ii) (26:ii) in
+ let Rt = slice_raw v__695 (27:ii) (31:ii) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let iszero = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ let offset =
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm19) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false))))) in
+ Just (CompareAndBranch (t,datasize,iszero,reset_vector_start offset))
+
+let decodePCRelAddressing ((Vector [op;_;_;B1;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__692) =
+ let immlo = slice_raw v__692 (1:ii) (2:ii) in
+ let immhi = slice_raw v__692 (8:ii) (26:ii) in
+ let Rd = slice_raw v__692 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let page = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let imm = to_vec_dec ((64:ii),(0:ii)) in
+ let imm =
+ if bitU_to_bool page
+ then
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length immhi) ^^
+ (set_vector_start_to_length
+ ((set_vector_start_to_length immlo) ^^
+ (set_vector_start_to_length
+ (duplicate_bits (set_vector_start_to_length (Vector [B0] 0 false), (12:ii)))))))))
+ else
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length immhi) ^^ (set_vector_start_to_length immlo)))) in
+ Just (Address (d,page,reset_vector_start imm))
+
+let decodeTestBranchImmediate ((Vector [b5;B0;B1;B1;B0;B1;B1;op;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__688) =
+ let b40 = slice_raw v__688 (8:ii) (12:ii) in
+ let imm14 = slice_raw v__688 (13:ii) (26:ii) in
+ let Rt = slice_raw v__688 (27:ii) (31:ii) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let datasize =
+ if bitU_to_bool (eq (match b5 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let bit_pos =
+ UInt
+ (reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length (Vector [b5] 0 false)) ^^ (set_vector_start_to_length b40)))) in
+ let bit_val = op in
+ let offset =
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm14) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false))))) in
+ Just (TestBitAndBranch (t,datasize,bit_pos,bit_val,reset_vector_start offset))
+
+let decodeLoadStoreRegisterRegisterOffset ((Vector [_;_;B1;B1;B1;B0;B0;B0;_;_;B1;_;_;_;_;_;_;_;_;S;B1;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__681) =
+ let size = slice_raw v__681 (0:ii) (1:ii) in
+ let opc = slice_raw v__681 (8:ii) (9:ii) in
+ let Rm = slice_raw v__681 (11:ii) (15:ii) in
+ let option_v = slice_raw v__681 (16:ii) (18:ii) in
+ let Rn = slice_raw v__681 (22:ii) (26:ii) in
+ let Rt = slice_raw v__681 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ (if bitU_to_bool
+ (eq
+ (match (access (set_vector_start_to_length option_v) (1:ii)) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (0:ii)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let extend_type = DecodeRegExtend (reset_vector_start (set_vector_start 2 option_v)) in
+ let shift =
+ if bitU_to_bool (eq (match S with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then scale
+ else (0:ii) in
+ sharedDecodeLoadRegister
+ (reset_vector_start Rn,
+ reset_vector_start Rt,
+ reset_vector_start Rm,
+ reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ wback,
+ postindex,
+ scale,
+ extend_type,
+ shift)
+
+let decodeLoadRegisterLiteral ((Vector [_;_;B0;B1;B1;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__677) =
+ let opc = slice_raw v__677 (0:ii) (1:ii) in
+ let imm19 = slice_raw v__677 (8:ii) (26:ii) in
+ let Rt = slice_raw v__677 (27:ii) (31:ii) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let memop = MemOp_LOAD in
+ let _signed = B0 in
+ let size = (0:ii) in
+ let offset = to_vec_dec ((64:ii),(4:ii)) in
+ let (memop, _signed, size) =
+ match opc with
+ | Vector [B0;B0] _ _ ->
+ let size = (4:ii) in
+ (memop,_signed,size)
+ | Vector [B0;B1] _ _ ->
+ let size = (8:ii) in
+ (memop,_signed,size)
+ | Vector [B1;B0] _ _ ->
+ let size = (4:ii) in
+ let _signed = B1 in
+ (memop,_signed,size)
+ | Vector [B1;B1] _ _ ->
+ let memop = MemOp_PREFETCH in
+ (memop,_signed,size)
+ end in
+ let offset =
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm19) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false))))) in
+ let datasize = size * (8:ii) in
+ Just (LoadLiteral (t,memop,_signed,size,reset_vector_start offset,datasize))
+
+let ROR_C (x, shift) =
+ let N = length (reset_vector_start (set_vector_start_to_length x)) in
+ let m = modulo shift N in
+ let result =
+ set_vector_start_to_length
+ (bitwise_or
+ (set_vector_start_to_length (LSR (reset_vector_start (set_vector_start_to_length x),m)),
+ set_vector_start_to_length (LSL (reset_vector_start (set_vector_start_to_length x),N - m)))) in
+ let carry_out = access (set_vector_start_to_length result) (N - (1:ii)) in
+ (set_vector_start_to_length result,carry_out)
+
+let decodeSystemImplementationDefined machineCode =
+ match machineCode with
+ | ((Vector [_;_;_;_;_;_;_;_;_;_;_;B0;B1;_;_;_;B1;_;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__647) ->
+ return (decodeImplementationDefined (reset_vector_start machineCode))
+ | ((Vector [_;_;_;_;_;_;_;_;_;_;_;B1;B1;_;_;_;B1;_;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__657) ->
+ return (decodeImplementationDefined (reset_vector_start machineCode))
+ | ((Vector [_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__667) ->
+ decodeSystem (reset_vector_start machineCode)
+ end
+
+let decodeLoadStoreRegisterImmediatePostIndexed ((Vector [_;_;B1;B1;B1;B0;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B0;B1;_;_;_;_;_;_;_;_;_;_] _ _) as v__641) =
+ let size = slice_raw v__641 (0:ii) (1:ii) in
+ let opc = slice_raw v__641 (8:ii) (9:ii) in
+ let imm9 = slice_raw v__641 (11:ii) (19:ii) in
+ let Rn = slice_raw v__641 (22:ii) (26:ii) in
+ let Rt = slice_raw v__641 (27:ii) (31:ii) in
+ let wback = B1 in
+ let postindex = B1 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ let offset = SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm9)) in
+ sharedDecodeLoadImmediate
+ (reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ wback,
+ postindex,
+ scale,
+ reset_vector_start offset,
+ AccType_NORMAL,
+ B0)
+
+let decodeLoadStoreRegisterImmediatePreIndexed ((Vector [_;_;B1;B1;B1;B0;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B1;B1;_;_;_;_;_;_;_;_;_;_] _ _) as v__635) =
+ let size = slice_raw v__635 (0:ii) (1:ii) in
+ let opc = slice_raw v__635 (8:ii) (9:ii) in
+ let imm9 = slice_raw v__635 (11:ii) (19:ii) in
+ let Rn = slice_raw v__635 (22:ii) (26:ii) in
+ let Rt = slice_raw v__635 (27:ii) (31:ii) in
+ let wback = B1 in
+ let postindex = B0 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ let offset = SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm9)) in
+ sharedDecodeLoadImmediate
+ (reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ wback,
+ postindex,
+ scale,
+ reset_vector_start offset,
+ AccType_NORMAL,
+ B0)
+
+let decodeLoadStoreRegisterUnprivileged ((Vector [_;_;B1;B1;B1;B0;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B1;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__629) =
+ let size = slice_raw v__629 (0:ii) (1:ii) in
+ let opc = slice_raw v__629 (8:ii) (9:ii) in
+ let imm9 = slice_raw v__629 (11:ii) (19:ii) in
+ let Rn = slice_raw v__629 (22:ii) (26:ii) in
+ let Rt = slice_raw v__629 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ let offset = SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm9)) in
+ sharedDecodeLoadImmediate
+ (reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ wback,
+ postindex,
+ scale,
+ reset_vector_start offset,
+ AccType_UNPRIV,
+ B0)
+
+let decodeLoadStoreRegisterUnscaledImmediate ((Vector [_;_;B1;B1;B1;B0;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B0;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__623) =
+ let size = slice_raw v__623 (0:ii) (1:ii) in
+ let opc = slice_raw v__623 (8:ii) (9:ii) in
+ let imm9 = slice_raw v__623 (11:ii) (19:ii) in
+ let Rn = slice_raw v__623 (22:ii) (26:ii) in
+ let Rt = slice_raw v__623 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ let offset = SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm9)) in
+ sharedDecodeLoadImmediate
+ (reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ wback,
+ postindex,
+ scale,
+ reset_vector_start offset,
+ AccType_NORMAL,
+ B1)
+
+let decodeLoadStoreRegisterUnsignedImmediate ((Vector [_;_;B1;B1;B1;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__619) =
+ let size = slice_raw v__619 (0:ii) (1:ii) in
+ let opc = slice_raw v__619 (8:ii) (9:ii) in
+ let imm12 = slice_raw v__619 (10:ii) (21:ii) in
+ let Rn = slice_raw v__619 (22:ii) (26:ii) in
+ let Rt = slice_raw v__619 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ let offset =
+ LSL
+ (reset_vector_start (set_vector_start_to_length
+ (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm12)))),
+ scale) in
+ sharedDecodeLoadImmediate
+ (reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ wback,
+ postindex,
+ scale,
+ reset_vector_start offset,
+ AccType_NORMAL,
+ B1)
+
+let decodeLoadStoreNoAllocatePairOffset ((Vector [_;_;B1;B0;B1;B0;B0;B0;B0;L;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__614) =
+ let opc = slice_raw v__614 (0:ii) (1:ii) in
+ let imm7 = slice_raw v__614 (10:ii) (16:ii) in
+ let Rt2 = slice_raw v__614 (17:ii) (21:ii) in
+ let Rn = slice_raw v__614 (22:ii) (26:ii) in
+ let Rt = slice_raw v__614 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let t2 = UInt_reg (reset_vector_start Rt2) in
+ let acctype = AccType_STREAM in
+ let memop =
+ if bitU_to_bool (eq (match L with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then MemOp_LOAD
+ else MemOp_STORE in
+ (if bitU_to_bool (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let scale =
+ (2:ii) +
+ (UInt (reset_vector_start (set_vector_start_to_length (Vector [access opc (1:ii)] 0 false)))) in
+ let datasize = lsl' ((8:ii),scale) in
+ let offset =
+ LSL
+ (reset_vector_start (set_vector_start_to_length
+ (SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm7)))),
+ scale) in
+ return (Just (LoadStorePairNonTemp (wback,postindex,n,t,t2,acctype,memop,scale,datasize,reset_vector_start offset)))
+
+let sharedDecodeLoadStorePair (L, opc, imm7, Rn, Rt, Rt2, wback, postindex) =
+ let n = UInt_reg Rn in
+ let t = UInt_reg Rt in
+ let t2 = UInt_reg Rt2 in
+ let acctype = AccType_NORMAL in
+ let memop = if bitU_to_bool (eq (L, (1:ii))) then MemOp_LOAD else MemOp_STORE in
+ (if bitU_to_bool
+ ((eq_vec
+ (set_vector_start_to_length
+ (Vector [if bitU_to_bool (is_one L) then B1 else B0;access opc (0:ii)] 1 false),
+ set_vector_start_to_length (Vector [B0;B1] 1 false))) |.
+ (eq_vec
+ (set_vector_start_to_length opc,
+ set_vector_start_to_length (Vector [B1;B1] 1 false))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let _signed = neq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ let scale =
+ (2:ii) +
+ (UInt (reset_vector_start (set_vector_start_to_length (Vector [access opc (1:ii)] 0 false)))) in
+ let datasize = lsl' ((8:ii),scale) in
+ let offset =
+ LSL
+ (reset_vector_start (set_vector_start_to_length (SignExtend ((64:ii),reset_vector_start imm7))),
+ scale) in
+ return (Just (LoadStorePair (wback,postindex,n,t,t2,acctype,memop,_signed,datasize,reset_vector_start offset)))
+
+let decodeDataRegister machineCode =
+ match machineCode with
+ | ((Vector [_;_;_;B0;B1;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__484) ->
+ decodeLogicalShiftedRegister (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B0;B1;B0;B1;B1;_;_;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__497) ->
+ decodeAddSubtractShiftedRegister (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B0;B1;B0;B1;B1;_;_;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__510) ->
+ decodeAddSubtractExtendedRegister (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B1;B1;B0;B1;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__523) ->
+ return (decodeAddSubtractWithCarry
+ (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [_;_;_;B1;B1;B0;B1;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;B0;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__536) ->
+ return (decodeConditionalCompareRegister (reset_vector_start machineCode))
+ | ((Vector [_;_;_;B1;B1;B0;B1;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;B1;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__549) ->
+ return (decodeConditionalCompareImmediate (reset_vector_start machineCode))
+ | ((Vector [_;_;_;B1;B1;B0;B1;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__562) ->
+ return (decodeConditionalSelect (reset_vector_start machineCode))
+ | ((Vector [_;_;_;B1;B1;B0;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__575) ->
+ return (decodeData3Source (reset_vector_start machineCode))
+ | ((Vector [_;B0;_;B1;B1;B0;B1;B0;B1;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__588) ->
+ decodeData2Source (reset_vector_start machineCode)
+ | ((Vector [_;B1;_;B1;B1;B0;B1;B0;B1;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__601) ->
+ decodeData1Source (reset_vector_start machineCode)
+ end
+
+let ROR (x, shift) =
+ let result = set_vector_start_to_length (to_vec_dec (length x,(0:ii))) in
+ if bitU_to_bool (eq_range (shift, (0:ii)))
+ then set_vector_start_to_length x
+ else
+ let (result', _) =
+ match (ROR_C (reset_vector_start (set_vector_start_to_length x),shift)) with
+ | (v0v', v1v') -> (v0v',v1v')
+ end in
+ set_vector_start_to_length result'
+
+let wMemIFP = wMem'IFP
+
+let decodeLoadStoreRegisterPairOffset ((Vector [_;_;B1;B0;B1;B0;B0;B1;B0;L;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__479) =
+ let opc = slice_raw v__479 (0:ii) (1:ii) in
+ let imm7 = slice_raw v__479 (10:ii) (16:ii) in
+ let Rt2 = slice_raw v__479 (17:ii) (21:ii) in
+ let Rn = slice_raw v__479 (22:ii) (26:ii) in
+ let Rt = slice_raw v__479 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ sharedDecodeLoadStorePair
+ (match L with | B0 -> (0:ii) | B1 -> (1:ii) end,
+ reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start_to_length imm7),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ reset_vector_start Rt2,
+ wback,
+ postindex)
+
+let decodeLoadStoreRegisterPairPostIndexed ((Vector [_;_;B1;B0;B1;B0;B0;B0;B1;L;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__474) =
+ let opc = slice_raw v__474 (0:ii) (1:ii) in
+ let imm7 = slice_raw v__474 (10:ii) (16:ii) in
+ let Rt2 = slice_raw v__474 (17:ii) (21:ii) in
+ let Rn = slice_raw v__474 (22:ii) (26:ii) in
+ let Rt = slice_raw v__474 (27:ii) (31:ii) in
+ let wback = B1 in
+ let postindex = B1 in
+ sharedDecodeLoadStorePair
+ (match L with | B0 -> (0:ii) | B1 -> (1:ii) end,
+ reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start_to_length imm7),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ reset_vector_start Rt2,
+ wback,
+ postindex)
+
+let decodeLoadStoreRegisterPairPreIndexed ((Vector [_;_;B1;B0;B1;B0;B0;B1;B1;L;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__469) =
+ let opc = slice_raw v__469 (0:ii) (1:ii) in
+ let imm7 = slice_raw v__469 (10:ii) (16:ii) in
+ let Rt2 = slice_raw v__469 (17:ii) (21:ii) in
+ let Rn = slice_raw v__469 (22:ii) (26:ii) in
+ let Rt = slice_raw v__469 (27:ii) (31:ii) in
+ let wback = B1 in
+ let postindex = B0 in
+ sharedDecodeLoadStorePair
+ (match L with | B0 -> (0:ii) | B1 -> (1:ii) end,
+ reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start_to_length imm7),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ reset_vector_start Rt2,
+ wback,
+ postindex)
+
+let IsSecureBelowEL3 () =
+ if bitU_to_bool (HaveEL (reset_vector_start EL3))
+ then
+ read_reg_bitfield (SCR_GEN ()) "NS" >>= fun w__0 ->
+ return (eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ else
+ return (if bitU_to_bool (HaveEL (reset_vector_start EL2))
+ then B0
+ else IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_IsSecureBelowEL3)
+
+let AArch64_ResetSpecialRegisters () =
+ write_reg SP_EL0 (to_vec_dec ((64:ii),UNKNOWN)) >>
+ write_reg SP_EL1 (to_vec_dec ((64:ii),UNKNOWN)) >>
+ write_reg SPSR_EL1 (to_vec_dec ((32:ii),UNKNOWN)) >>
+ write_reg ELR_EL1 (to_vec_dec ((64:ii),UNKNOWN)) >>
+ (if bitU_to_bool (HaveEL (reset_vector_start EL2))
+ then
+ write_reg SP_EL2 (to_vec_dec ((64:ii),UNKNOWN)) >>
+ write_reg SPSR_EL2 (to_vec_dec ((32:ii),UNKNOWN)) >>
+ write_reg ELR_EL2 (to_vec_dec ((64:ii),UNKNOWN))
+ else return ()) >>
+ (if bitU_to_bool (HaveEL (reset_vector_start EL3))
+ then
+ write_reg SP_EL3 (to_vec_dec ((64:ii),UNKNOWN)) >>
+ write_reg SPSR_EL3 (to_vec_dec ((32:ii),UNKNOWN)) >>
+ write_reg ELR_EL3 (to_vec_dec ((64:ii),UNKNOWN))
+ else return ()) >>
+ let _ =
+ if bitU_to_bool (HaveAArch32EL (reset_vector_start EL1))
+ then
+ let SPSR_fiq = to_vec_dec ((32:ii),UNKNOWN) in
+ let SPSR_irq = to_vec_dec ((32:ii),UNKNOWN) in
+ let SPSR_abt = to_vec_dec ((32:ii),UNKNOWN) in
+ let SPSR_und = to_vec_dec ((32:ii),UNKNOWN) in
+ ()
+ else () in
+ let DLR_EL0 = to_vec_dec ((64:ii),UNKNOWN) in
+ let DSPSR_EL0 = to_vec_dec ((32:ii),UNKNOWN) in
+ return ()
+
+let DecodeBitMasks (M', immN, imms, immr, immediate) =
+ let M = length (reset_vector_start (set_vector_start_to_length (to_vec_dec (M',(0:ii))))) in
+ let levels = to_vec_dec ((6:ii),(0:ii)) in
+ let len =
+ match (HighestSetBit
+ (reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length (Vector [immN] 0 false)) ^^
+ (set_vector_start_to_length
+ (NOT (reset_vector_start (set_vector_start_to_length imms)))))))) with
+ | Nothing ->
+ let _ = assert' B0 (Just "DecodeBitMasks: HighestSetBit returned None") in
+ (0:ii)
+ | Just (c) -> c
+ end in
+ (if bitU_to_bool (lt (len, (1:ii)))
+ then ReservedValue ()
+ else return ()) >>
+ let _ = assert' (gteq (M, lsl' ((1:ii),len))) (Nothing) in
+ let levels =
+ ZeroExtend
+ ((6:ii),
+ reset_vector_start (set_vector_start_to_length
+ (duplicate_bits (set_vector_start_to_length (Vector [B1] 0 false), len)))) in
+ (if bitU_to_bool
+ (immediate &.
+ (eq_vec
+ (set_vector_start_to_length
+ (bitwise_and (set_vector_start_to_length imms, set_vector_start_to_length levels)),
+ set_vector_start_to_length levels)))
+ then ReservedValue ()
+ else return ()) >>
+ let S =
+ set_vector_start 5
+ (bitwise_and (set_vector_start_to_length imms, set_vector_start_to_length levels)) in
+ let R =
+ set_vector_start 5
+ (bitwise_and (set_vector_start_to_length immr, set_vector_start_to_length levels)) in
+ let diff =
+ set_vector_start 5
+ (minus_VVV
+ (reset_vector_start (set_vector_start_to_length S))
+ (reset_vector_start (set_vector_start_to_length R))) in
+ let esize = lsl' ((1:ii),len) in
+ let d = set_vector_start 5 (slice diff (len - (1:ii)) (0:ii)) in
+ let welem =
+ set_vector_start_to_length
+ (ZeroExtend
+ (esize,
+ reset_vector_start (set_vector_start_to_length
+ (duplicate_bits
+ (set_vector_start_to_length (Vector [B1] 0 false),
+ add_VII (reset_vector_start (set_vector_start_to_length S)) (1:ii)))))) in
+ let telem =
+ set_vector_start_to_length
+ (ZeroExtend
+ (esize,
+ reset_vector_start (set_vector_start_to_length
+ (duplicate_bits
+ (set_vector_start_to_length (Vector [B1] 0 false),
+ add_VII (reset_vector_start (set_vector_start_to_length d)) (1:ii)))))) in
+ let wmask =
+ Replicate
+ (M',
+ reset_vector_start (set_vector_start_to_length
+ (ROR
+ (reset_vector_start (set_vector_start_to_length welem),
+ unsigned (reset_vector_start R))))) in
+ let tmask = Replicate (M',reset_vector_start (set_vector_start_to_length telem)) in
+ return (set_vector_start_to_length wmask,set_vector_start_to_length tmask)
+
+let AArch64_TranslateAddress (vaddress, acctype, iswrite, wasaligned, size) =
+ let _ =
+ info
+ "Translation is not implemented, return same address as the virtual (no fault, normal, shareable, non-secure)." in
+ <| AddressDescriptor_fault = (AArch64_NoFault ());
+ AddressDescriptor_memattrs =
+ (<| MemoryAttributes_type' = MemType_Normal;
+ MemoryAttributes_shareable = B1 |>);
+ AddressDescriptor_paddress =
+ (<| FullAddress_physicaladdress = vaddress;
+ FullAddress_NS = B1 |>) |>
+
+let ExtendReg (N', _reg, type', shift) =
+ rX (N',_reg) >>= fun w__0 ->
+ let _val = set_vector_start_to_length w__0 in
+ let _unsigned = B0 in
+ let len = (0:ii) in
+ let (_unsigned, len) =
+ match type' with
+ | ExtendType_SXTB ->
+ let _unsigned = B0 in
+ let len = (8:ii) in
+ (_unsigned,len)
+ | ExtendType_SXTH ->
+ let _unsigned = B0 in
+ let len = (16:ii) in
+ (_unsigned,len)
+ | ExtendType_SXTW ->
+ let _unsigned = B0 in
+ let len = (32:ii) in
+ (_unsigned,len)
+ | ExtendType_SXTX ->
+ let _unsigned = B0 in
+ let len = (64:ii) in
+ (_unsigned,len)
+ | ExtendType_UXTB ->
+ let _unsigned = B1 in
+ let len = (8:ii) in
+ (_unsigned,len)
+ | ExtendType_UXTH ->
+ let _unsigned = B1 in
+ let len = (16:ii) in
+ (_unsigned,len)
+ | ExtendType_UXTW ->
+ let _unsigned = B1 in
+ let len = (32:ii) in
+ (_unsigned,len)
+ | ExtendType_UXTX ->
+ let _unsigned = B1 in
+ let len = (64:ii) in
+ (_unsigned,len)
+ end in
+ let len = uMin (len,(length (reset_vector_start (set_vector_start_to_length _val))) - shift) in
+ return (set_vector_start_to_length
+ (Extend
+ (length _val,
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length
+ (slice (set_vector_start_to_length _val) (len - (1:ii)) (0:ii))) ^^
+ (set_vector_start_to_length (set_vector_start_to_length (Zeros shift))))),
+ _unsigned)))
+
+let ShiftReg (N', _reg, type', amount) =
+ rX (N',_reg) >>= fun w__0 ->
+ let result = set_vector_start_to_length w__0 in
+ let result =
+ match type' with
+ | ShiftType_LSL ->
+ set_vector_start_to_length
+ (LSL (reset_vector_start (set_vector_start_to_length result),amount))
+ | ShiftType_LSR ->
+ set_vector_start_to_length
+ (LSR (reset_vector_start (set_vector_start_to_length result),amount))
+ | ShiftType_ASR ->
+ set_vector_start_to_length
+ (ASR (reset_vector_start (set_vector_start_to_length result),amount))
+ | ShiftType_ROR ->
+ set_vector_start_to_length
+ (ROR (reset_vector_start (set_vector_start_to_length result),amount))
+ end in
+ return (set_vector_start_to_length result)
+
+let initial_analysis instr =
+ let iR = [] in
+ let oR = [] in
+ let aR = [] in
+ let Nias = [NIAFP_successor] in
+ let Dia = DIAFP_none in
+ let ik = IK_simple in
+ match instr with
+ | TMStart (t) ->
+ let iR = TxNestingLevelfp :: TXIDR_EL0_DEPTHfp :: iR in
+ let oR = TxNestingLevelfp :: (oR ++ (xFP t)) in
+ let ik = IK_trans Transaction_start in
+ return (aR,Nias,iR,oR,ik)
+ | TMCommit ->
+ let iR = TxNestingLevelfp :: iR in
+ let oR = TxNestingLevelfp :: oR in
+ let ik = IK_trans Transaction_commit in
+ return (aR,Nias,iR,oR,ik)
+ | TMAbort (retry,reason) ->
+ let iR = TxNestingLevelfp :: iR in
+ let ik = IK_trans Transaction_abort in
+ return (aR,Nias,iR,oR,ik)
+ | TMTest ->
+ let iR = TxNestingLevelfp :: iR in
+ let oR = (RFull "NZCV") :: oR in
+ return (aR,Nias,iR,oR,ik)
+ | CompareAndBranch (t,datasize,iszero,offset) ->
+ let iR = iR ++ (xFP t) in
+ let (i, o) = match (BranchToFP (iR,oR)) with | (v0v', v1v') -> (v0v',v1v') end in
+ let iR = i in
+ let oR = o in
+ rPC () >>= fun w__0 ->
+ let nia' =
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__0))
+ (reset_vector_start (set_vector_start_to_length offset))) in
+ let Nias = [NIAFP_concrete_address (reset_vector_start nia');NIAFP_successor] in
+ let ik = IK_branch in
+ return (aR,Nias,iR,oR,ik)
+ | BranchConditional (offset,condition) ->
+ let iR = iR ++ (ConditionHoldsIFP (reset_vector_start condition)) in
+ let (i, o) = match (BranchToFP (iR,oR)) with | (v2v', v3v') -> (v2v',v3v') end in
+ let iR = i in
+ let oR = o in
+ rPC () >>= fun w__1 ->
+ let Nias =
+ [NIAFP_concrete_address (reset_vector_start (set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__1))
+ (reset_vector_start (set_vector_start_to_length offset)))));NIAFP_successor] in
+ let ik = IK_branch in
+ return (aR,Nias,iR,oR,ik)
+ | GenerateExceptionEL1 (imm) ->
+ not_implemented "GenerateExceptionEL1" >>
+ return (aR,Nias,iR,oR,ik)
+ | GenerateExceptionEL2 (imm) ->
+ not_implemented "GenerateExceptionEL2" >>
+ return (aR,Nias,iR,oR,ik)
+ | GenerateExceptionEL3 (imm) ->
+ not_implemented "GenerateExceptionEL3" >>
+ return (aR,Nias,iR,oR,ik)
+ | DebugBreakpoint (comment) ->
+ not_implemented "DebugBreakpoint" >>
+ return (aR,Nias,iR,oR,ik)
+ | ExternalDebugBreakpoint ->
+ not_implemented "ExternalDebugBreakpoint" >>
+ return (aR,Nias,iR,oR,ik)
+ | DebugSwitchToExceptionLevel (target_level) ->
+ not_implemented "DebugSwitchToExceptionLevel" >>
+ return (aR,Nias,iR,oR,ik)
+ | MoveSystemImmediate (operand,field') ->
+ let (iR, oR) =
+ match field' with
+ | PSTATEField_SP ->
+ let oR = PSTATE_SPfp :: oR in
+ (iR,oR)
+ | PSTATEField_DAIFSet ->
+ let iR = iR ++ [PSTATE_Ffp;PSTATE_Ifp;PSTATE_Afp;PSTATE_Dfp] in
+ let oR = oR ++ [PSTATE_Ffp;PSTATE_Ifp;PSTATE_Afp;PSTATE_Dfp] in
+ (iR,oR)
+ | PSTATEField_DAIFClr ->
+ let iR = iR ++ [PSTATE_Ffp;PSTATE_Ifp;PSTATE_Afp;PSTATE_Dfp] in
+ let oR = oR ++ [PSTATE_Ffp;PSTATE_Ifp;PSTATE_Afp;PSTATE_Dfp] in
+ (iR,oR)
+ end in
+ return (aR,Nias,iR,oR,ik)
+ | Hint (op) ->
+ match op with
+ | SystemHintOp_YIELD -> return ()
+ | SystemHintOp_WFE ->
+ EventRegistered () >>= fun w__2 ->
+ if bitU_to_bool w__2
+ then return ()
+ else not_implemented "Hint(SystemHintOp_WFE);"
+ | SystemHintOp_WFI -> not_implemented "Hint(SystemHintOp_WFI);"
+ | SystemHintOp_SEV -> return ()
+ | SystemHintOp_SEVL -> not_implemented "Hint(SystemHintOp_SEVL);"
+ | _ -> return ()
+ end >>
+ return (aR,Nias,iR,oR,ik)
+ | ClearExclusiveMonitor (imm) -> return (aR,Nias,iR,oR,ik)
+ | Barrier (op,domain,types) ->
+ let ik =
+ match op with
+ | MemBarrierOp_DSB ->
+ match types with
+ | MBReqTypes_Reads -> IK_barrier Barrier_DSB_LD
+ | MBReqTypes_Writes -> IK_barrier Barrier_DSB_ST
+ | MBReqTypes_All -> IK_barrier Barrier_DSB
+ end
+ | MemBarrierOp_DMB ->
+ match types with
+ | MBReqTypes_Reads -> IK_barrier Barrier_DMB_LD
+ | MBReqTypes_Writes -> IK_barrier Barrier_DMB_ST
+ | MBReqTypes_All -> IK_barrier Barrier_DMB
+ end
+ | MemBarrierOp_ISB -> IK_barrier Barrier_ISB
+ end in
+ return (aR,Nias,iR,oR,ik)
+ | System (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result) ->
+ let oR = oR ++ (xFP t) in
+ not_implemented "System" >>
+ return (aR,Nias,iR,oR,ik)
+ | MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read) ->
+ let (oR, iR) =
+ if bitU_to_bool read
+ then
+ let oR = oR ++ (xFP t) in
+ let iR =
+ match toNaturalFiveTup (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2) with
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (0:nn)) -> (RFull "NZCV") :: iR
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (1:nn)) -> (RFull "DAIF") :: iR
+ | ((3:nn), (3:nn), (13:nn), (0:nn), (2:nn)) -> (RFull "TPIDR_EL0") :: iR
+ end in
+ (oR,iR)
+ else
+ let iR = iR ++ (xFP t) in
+ let oR =
+ match toNaturalFiveTup (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2) with
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (0:nn)) -> (RFull "NZCV") :: oR
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (1:nn)) -> (RFull "DAIF") :: oR
+ | ((3:nn), (3:nn), (13:nn), (0:nn), (2:nn)) -> (RFull "TPIDR_EL0") :: oR
+ end in
+ (oR,iR) in
+ return (aR,Nias,iR,oR,ik)
+ | ImplementationDefinedTestBeginEnd (isEnd) -> return (aR,Nias,iR,oR,ik)
+ | ImplementationDefinedStopFetching -> return (aR,Nias,iR,oR,ik)
+ | ImplementationDefinedThreadStart -> return (aR,Nias,iR,oR,ik)
+ | TestBitAndBranch (t,datasize,bit_pos,bit_val,offset) ->
+ let iR = (xFP t) ++ iR in
+ let (i, o) = match (BranchToFP (iR,oR)) with | (v4v', v5v') -> (v4v',v5v') end in
+ let iR = i in
+ let oR = o in
+ rPC () >>= fun w__3 ->
+ let Nias =
+ [NIAFP_concrete_address (reset_vector_start (set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__3))
+ (reset_vector_start (set_vector_start_to_length offset)))));NIAFP_successor] in
+ let ik = IK_branch in
+ return (aR,Nias,iR,oR,ik)
+ | BranchImmediate (branch_type,offset) ->
+ let (iR, oR) =
+ if bitU_to_bool (eq (branch_type, BranchType_CALL))
+ then
+ let iR = _PCfp :: iR in
+ let oR = (xFP (30:ii)) ++ oR in
+ (iR,oR)
+ else (iR,oR) in
+ let (i, o) = match (BranchToFP (iR,oR)) with | (v6v', v7v') -> (v6v',v7v') end in
+ let iR = i in
+ let oR = o in
+ rPC () >>= fun w__4 ->
+ let Nias =
+ [NIAFP_concrete_address (reset_vector_start (set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__4))
+ (reset_vector_start (set_vector_start_to_length offset)))))] in
+ let ik = IK_branch in
+ return (aR,Nias,iR,oR,ik)
+ | BranchRegister (n,branch_type) ->
+ let iR = iR ++ (xFP n) in
+ let (iR, oR) =
+ if bitU_to_bool (eq (branch_type, BranchType_CALL))
+ then
+ let iR = _PCfp :: iR in
+ let oR = (xFP (30:ii)) ++ oR in
+ (iR,oR)
+ else (iR,oR) in
+ let (i, o) = match (BranchToFP (iR,oR)) with | (v8v', v9v') -> (v8v',v9v') end in
+ let iR = i in
+ let oR = o in
+ let Nias =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then [NIAFP_concrete_address (reset_vector_start (to_vec_dec ((64:ii),(0:ii))))]
+ else [NIAFP_indirect_address] in
+ let ik = IK_branch in
+ return (aR,Nias,iR,oR,ik)
+ | ExceptionReturn ->
+ not_implemented "ExceptionReturn" >>
+ return (aR,Nias,iR,oR,ik)
+ | DebugRestorePState ->
+ not_implemented "DebugRestorePState" >>
+ return (aR,Nias,iR,oR,ik)
+ | LoadLiteral (t,memop,_signed,size,offset,datasize) ->
+ let iR = _PCfp :: iR in
+ let oR = (xFP t) ++ oR in
+ let aR = _PCfp :: aR in
+ let (aR, ik) =
+ match memop with
+ | MemOp_LOAD ->
+ let ik = IK_mem_read Read_plain in
+ (aR,ik)
+ | MemOp_PREFETCH ->
+ let ik = IK_simple in
+ let aR = [] in
+ (aR,ik)
+ end in
+ return (aR,Nias,iR,oR,ik)
+ | LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize) ->
+ let rt_unknown = B0 in
+ let rn_unknown = B0 in
+ let (iR, aR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let iR = CheckSPAlignmentIFP ++ iR in
+ let iR = rSPIFP ++ iR in
+ let aR = rSPIFP ++ aR in
+ (iR,aR)
+ else
+ let (iR, aR) =
+ if bitU_to_bool rn_unknown
+ then (iR,aR)
+ else
+ let iR = (xFP n) ++ iR in
+ let aR = (xFP n) ++ aR in
+ (iR,aR) in
+ (iR,aR) in
+ match memop with
+ | MemOp_STORE ->
+ let iR =
+ if bitU_to_bool rt_unknown
+ then iR
+ else if bitU_to_bool pair then (xFP t) ++ ((xFP t2) ++ iR) else (xFP t) ++ iR in
+ (if bitU_to_bool excl
+ then
+ let iR = iR ++ wMemIFP in
+ let oR = (xFP s) ++ oR in
+ wmem_kind (acctype,B1) >>= fun w__5 ->
+ let ik = w__5 in
+ return (iR,oR,ik)
+ else
+ let iR = iR ++ wMemIFP in
+ wmem_kind (acctype,B0) >>= fun w__6 ->
+ let ik = w__6 in
+ return (iR,oR,ik)) >>= fun (iR, oR, ik) ->
+ return (aR,iR,oR,ik)
+ | MemOp_LOAD ->
+ (if bitU_to_bool pair
+ then
+ let (iR, oR) =
+ if bitU_to_bool rt_unknown
+ then
+ let oR = (xFP t) ++ oR in
+ (iR,oR)
+ else
+ let (iR, oR) =
+ if bitU_to_bool (eq_range (elsize, (32:ii)))
+ then
+ let iR = iR ++ BigEndianIFP in
+ let oR = (xFP t) ++ ((xFP t2) ++ oR) in
+ (iR,oR)
+ else
+ let oR = (xFP t) ++ ((xFP t2) ++ oR) in
+ (iR,oR) in
+ (iR,oR) in
+ rmem_kind (acctype,B1) >>= fun w__7 ->
+ let ik = w__7 in
+ return (oR,iR,ik)
+ else
+ let oR = (xFP t) ++ oR in
+ rmem_kind (acctype,excl) >>= fun w__8 ->
+ let ik = w__8 in
+ return (oR,iR,ik)) >>= fun (oR, iR, ik) ->
+ return (aR,iR,oR,ik)
+ | MemOp_PREFETCH ->
+ let aR = [] in
+ return (aR,iR,oR,ik)
+ end >>= fun (aR, iR, oR, ik) ->
+ return (aR,Nias,iR,oR,ik)
+ | LoadStorePairNonTemp (wback,postindex,n,t,t2,acctype,memop,scale,datasize,offset) ->
+ let rt_unknown = B0 in
+ let (iR, aR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let iR = CheckSPAlignmentIFP ++ iR in
+ let iR = rSPIFP ++ iR in
+ let aR = rSPIFP ++ aR in
+ (iR,aR)
+ else
+ let iR = (xFP n) ++ iR in
+ let aR = (xFP n) ++ aR in
+ (iR,aR) in
+ let (iR, oR) =
+ if bitU_to_bool wback
+ then
+ let (iR, oR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let (i, o) = match wSPFP with | (v10v', v11v') -> (v10v',v11v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP n) ++ oR in
+ (iR,oR) in
+ (iR,oR)
+ else (iR,oR) in
+ match memop with
+ | MemOp_STORE ->
+ let iR = if bitU_to_bool (rt_unknown &. (eq_range (t, n))) then iR else (xFP t) ++ iR in
+ let iR = if bitU_to_bool (rt_unknown &. (eq_range (t2, n))) then iR else (xFP t2) ++ iR in
+ let iR = wMemIFP ++ iR in
+ wmem_kind (acctype,B0) >>= fun w__9 ->
+ let ik = w__9 in
+ return (oR,iR,ik)
+ | MemOp_LOAD ->
+ let oR = (xFP t) ++ ((xFP t2) ++ oR) in
+ rmem_kind (acctype,B0) >>= fun w__10 ->
+ let ik = w__10 in
+ return (oR,iR,ik)
+ end >>= fun (oR, iR, ik) ->
+ return (aR,Nias,iR,oR,ik)
+ | LoadImmediate (n,t,acctype,memop,_signed,wback,postindex,offset,regsize,datasize) ->
+ let wb_unknown = B0 in
+ let rt_unknown = B0 in
+ let (iR, aR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let iR = CheckSPAlignmentIFP ++ iR in
+ let iR = rSPIFP ++ iR in
+ let aR = rSPIFP ++ aR in
+ (iR,aR)
+ else
+ let iR = (xFP n) ++ iR in
+ let aR = (xFP n) ++ aR in
+ (iR,aR) in
+ let (iR, oR) =
+ if bitU_to_bool wback
+ then
+ let (iR, oR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let (i, o) = match wSPFP with | (v12v', v13v') -> (v12v',v13v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP n) ++ oR in
+ (iR,oR) in
+ (iR,oR)
+ else (iR,oR) in
+ match memop with
+ | MemOp_STORE ->
+ let iR = if bitU_to_bool rt_unknown then iR else (xFP t) ++ iR in
+ let iR = wMemIFP ++ iR in
+ wmem_kind (acctype,B0) >>= fun w__11 ->
+ let ik = w__11 in
+ return (aR,oR,iR,ik)
+ | MemOp_LOAD ->
+ let oR = (xFP t) ++ oR in
+ rmem_kind (acctype,B0) >>= fun w__12 ->
+ let ik = w__12 in
+ return (aR,oR,iR,ik)
+ | MemOp_PREFETCH ->
+ let aR = [] in
+ return (aR,oR,iR,ik)
+ end >>= fun (aR, oR, iR, ik) ->
+ return (aR,Nias,iR,oR,ik)
+ | LoadRegister (n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize) ->
+ let iR = (xFP m) ++ iR in
+ let aR = (xFP m) ++ aR in
+ let wb_unknown = B0 in
+ let rt_unknown = B0 in
+ let (iR, aR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let iR = CheckSPAlignmentIFP ++ iR in
+ let iR = rSPIFP ++ iR in
+ let aR = rSPIFP ++ aR in
+ (iR,aR)
+ else
+ let iR = (xFP n) ++ iR in
+ let aR = (xFP n) ++ aR in
+ (iR,aR) in
+ let (iR, oR) =
+ if bitU_to_bool wback
+ then
+ let (iR, oR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let (i, o) = match wSPFP with | (v14v', v15v') -> (v14v',v15v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP n) ++ oR in
+ (iR,oR) in
+ (iR,oR)
+ else (iR,oR) in
+ match memop with
+ | MemOp_STORE ->
+ let iR = if bitU_to_bool rt_unknown then iR else (xFP t) ++ iR in
+ let iR = wMemIFP ++ iR in
+ wmem_kind (acctype,B0) >>= fun w__13 ->
+ let ik = w__13 in
+ return (aR,oR,iR,ik)
+ | MemOp_LOAD ->
+ let oR = (xFP t) ++ oR in
+ rmem_kind (acctype,B0) >>= fun w__14 ->
+ let ik = w__14 in
+ return (aR,oR,iR,ik)
+ | MemOp_PREFETCH ->
+ let aR = [] in
+ return (aR,oR,iR,ik)
+ end >>= fun (aR, oR, iR, ik) ->
+ return (aR,Nias,iR,oR,ik)
+ | LoadStorePair (wback,postindex,n,t,t2,acctype,memop,_signed,datasize,offset) ->
+ let rt_unknown = B0 in
+ let wb_unknown = B0 in
+ let (iR, aR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let iR = CheckSPAlignmentIFP ++ iR in
+ let iR = rSPIFP ++ iR in
+ let aR = rSPIFP ++ aR in
+ (iR,aR)
+ else
+ let iR = (xFP n) ++ iR in
+ let aR = (xFP n) ++ aR in
+ (iR,aR) in
+ let (iR, oR) =
+ if bitU_to_bool wback
+ then
+ let (iR, oR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let (i, o) = match wSPFP with | (v16v', v17v') -> (v16v',v17v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP n) ++ oR in
+ (iR,oR) in
+ (iR,oR)
+ else (iR,oR) in
+ match memop with
+ | MemOp_STORE ->
+ let iR = if bitU_to_bool (rt_unknown &. (eq_range (t, n))) then iR else (xFP t) ++ iR in
+ let iR = if bitU_to_bool (rt_unknown &. (eq_range (t2, n))) then iR else (xFP t2) ++ iR in
+ let iR = wMemIFP ++ iR in
+ wmem_kind (acctype,B0) >>= fun w__15 ->
+ let ik = w__15 in
+ return (oR,iR,ik)
+ | MemOp_LOAD ->
+ let oR = (xFP t) ++ oR in
+ let oR = (xFP t2) ++ oR in
+ rmem_kind (acctype,B0) >>= fun w__16 ->
+ let ik = w__16 in
+ return (oR,iR,ik)
+ end >>= fun (oR, iR, ik) ->
+ return (aR,Nias,iR,oR,ik)
+ | AddSubImmediate (d,n,datasize,sub_op,setflags,imm) ->
+ let iR = (if bitU_to_bool (eq_range (n, (31:ii))) then rSPIFP else xFP n) ++ iR in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let (iR, oR) =
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then
+ let (i, o) = match wSPFP with | (v18v', v19v') -> (v18v',v19v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP d) ++ oR in
+ (iR,oR) in
+ return (aR,Nias,iR,oR,ik)
+ | BitfieldMove (d,n,datasize,inzero,extend,R,S,wmask,tmask) ->
+ let iR = if bitU_to_bool inzero then iR else (xFP d) ++ iR in
+ let iR = (xFP n) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | ExtractRegister (d,n,m,datasize,lsb) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | LogicalImmediate (d,n,datasize,setflags,op,imm) ->
+ let iR = (xFP n) ++ iR in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let (iR, oR) =
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then
+ let (i, o) = match wSPFP with | (v20v', v21v') -> (v20v',v21v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP d) ++ oR in
+ (iR,oR) in
+ return (aR,Nias,iR,oR,ik)
+ | MoveWide (d,datasize,imm,pos,opcode) ->
+ let iR = if bitU_to_bool (eq (opcode, MoveWideOp_K)) then (xFP d) ++ iR else iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | Address (d,page,imm) ->
+ let iR = _PCfp :: iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift) ->
+ let iR = (if bitU_to_bool (eq_range (n, (31:ii))) then rSPIFP else xFP n) ++ iR in
+ let iR = (xFP m) ++ iR in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let (iR, oR) =
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then
+ let (i, o) = match wSPFP with | (v22v', v23v') -> (v22v',v23v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP d) ++ oR in
+ (iR,oR) in
+ return (aR,Nias,iR,oR,ik)
+ | AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | AddSubCarry (d,n,m,datasize,sub_op,setflags) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let iR = PSTATE_Cfp :: iR in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm) ->
+ let iR = (xFP n) ++ iR in
+ let iR = (ConditionHoldsIFP (reset_vector_start condition)) ++ iR in
+ let oR = NZCVfp ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let iR = (ConditionHoldsIFP (reset_vector_start condition)) ++ iR in
+ let oR = NZCVfp ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let iR = (ConditionHoldsIFP (reset_vector_start condition)) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | Reverse (d,n,datasize,op) ->
+ let iR = (xFP n) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | CountLeading (d,n,datasize,opcode) ->
+ let iR = (xFP n) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | Division (d,n,m,datasize,_unsigned) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | Shift (d,n,m,datasize,shift_type) ->
+ let iR = (xFP m) ++ iR in
+ let iR = (xFP n) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | CRC (d,n,m,size,crc32c) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op) ->
+ let iR = (xFP n) ++ iR in
+ let iR = (xFP m) ++ iR in
+ let iR = (xFP a) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,_unsigned) ->
+ let iR = (xFP n) ++ iR in
+ let iR = (xFP m) ++ iR in
+ let iR = (xFP a) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | MultiplyHigh (d,n,m,a,destsize,datasize,_unsigned) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ end >>= fun (aR, Nias, iR, oR, ik) ->
+ return (iR,oR,aR,Nias,Dia,ik)
+
+let decodeBranchesExceptionSystem machineCode =
+ match machineCode with
+ | ((Vector [_;B0;B0;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__392) ->
+ return (decodeUnconditionalBranchImmediate
+ (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [_;B0;B1;B1;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__403) ->
+ return (decodeCompareBranchImmediate
+ (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [_;B0;B1;B1;B0;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__414) ->
+ return (decodeTestBranchImmediate (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [B0;B1;B0;B1;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__425) ->
+ return (decodeConditionalBranchImmediate
+ (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__436) ->
+ decodeExceptionGeneration (reset_vector_start machineCode)
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__447) ->
+ decodeSystemImplementationDefined (reset_vector_start machineCode)
+ | ((Vector [B1;B1;B0;B1;B0;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__458) ->
+ decodeUnconditionalBranchRegister (reset_vector_start machineCode)
+ end
+
+let IsSecure () =
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ if bitU_to_bool
+ ((HaveEL (reset_vector_start EL3)) &.
+ ((~(UsingAArch32 ())) &.
+ (eq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL3))))
+ then return B1
+ else
+ read_reg PSTATE_M >>= fun w__1 ->
+ if bitU_to_bool
+ ((HaveEL (reset_vector_start EL3)) &.
+ ((UsingAArch32 ()) &. (eq_vec (w__1, set_vector_start_to_length M32_Monitor))))
+ then return B1
+ else IsSecureBelowEL3 ()
+
+let decodeLogicalImmediate ((Vector [sf;_;_;B1;B0;B0;B1;B0;B0;N;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__388) =
+ let opc = slice_raw v__388 (1:ii) (2:ii) in
+ let immr = slice_raw v__388 (10:ii) (15:ii) in
+ let imms = slice_raw v__388 (16:ii) (21:ii) in
+ let Rn = slice_raw v__388 (22:ii) (26:ii) in
+ let Rd = slice_raw v__388 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let setflags = B0 in
+ let op = LogicalOp_AND in
+ let (op, setflags) =
+ match opc with
+ | Vector [B0;B0] _ _ ->
+ let op = LogicalOp_AND in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B0;B1] _ _ ->
+ let op = LogicalOp_ORR in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B1;B0] _ _ ->
+ let op = LogicalOp_EOR in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B1;B1] _ _ ->
+ let op = LogicalOp_AND in
+ let setflags = B1 in
+ (op,setflags)
+ end in
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (neq (match N with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))))
+ then ReservedValue ()
+ else return ()) >>
+ DecodeBitMasks (datasize,N,reset_vector_start imms,reset_vector_start immr,B1) >>= fun w__0 ->
+ let (imm, _) = match w__0 with | (v0v', v1v') -> (v0v',v1v') end in
+ return (Just (LogicalImmediate (d,n,datasize,setflags,op,reset_vector_start (set_vector_start_to_length
+ imm))))
+
+let decodeBitfield ((Vector [sf;_;_;B1;B0;B0;B1;B1;B0;N;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__384) =
+ let opc = slice_raw v__384 (1:ii) (2:ii) in
+ let immr = slice_raw v__384 (10:ii) (15:ii) in
+ let imms = slice_raw v__384 (16:ii) (21:ii) in
+ let Rn = slice_raw v__384 (22:ii) (26:ii) in
+ let Rd = slice_raw v__384 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let inzero = B0 in
+ let extend = B0 in
+ let R = (0:ii) in
+ let S = (0:ii) in
+ match opc with
+ | Vector [B0;B0] _ _ ->
+ let inzero = B1 in
+ let extend = B1 in
+ return (inzero,extend)
+ | Vector [B0;B1] _ _ ->
+ let inzero = B0 in
+ let extend = B0 in
+ return (inzero,extend)
+ | Vector [B1;B0] _ _ ->
+ let inzero = B1 in
+ let extend = B0 in
+ return (inzero,extend)
+ | Vector [B1;B1] _ _ ->
+ UnallocatedEncoding () >>
+ return (inzero,extend)
+ end >>= fun (inzero, extend) ->
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ (neq (match N with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then ReservedValue ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ ((neq (match N with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) |.
+ ((neq (match (access immr (5:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) |.
+ (neq (match (access imms (5:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))))))
+ then ReservedValue ()
+ else return ()) >>
+ let R = UInt (reset_vector_start (set_vector_start_to_length immr)) in
+ let S = UInt (reset_vector_start (set_vector_start_to_length imms)) in
+ DecodeBitMasks (datasize,N,reset_vector_start imms,reset_vector_start immr,B0) >>= fun (wmask, tmask) ->
+ return (Just (BitfieldMove (d,n,datasize,inzero,extend,R,S,reset_vector_start (set_vector_start_to_length
+ wmask),reset_vector_start (set_vector_start_to_length tmask))))
+
+let AArch64_SetExclusiveMonitors (address, size) =
+ let acctype = AccType_ATOMIC in
+ let iswrite = B0 in
+ let aligned =
+ neq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),size))) in
+ let memaddrdesc =
+ AArch64_TranslateAddress (reset_vector_start address,acctype,iswrite,aligned,size) in
+ if bitU_to_bool (IsFault memaddrdesc)
+ then ()
+ else
+ let _ =
+ if bitU_to_bool memaddrdesc.AddressDescriptor_memattrs.MemoryAttributes_shareable
+ then MarkExclusiveGlobal (memaddrdesc.AddressDescriptor_paddress,ProcessorID (),size)
+ else () in
+ let _ = MarkExclusiveLocal (memaddrdesc.AddressDescriptor_paddress,ProcessorID (),size) in
+ AArch64_MarkExclusiveVA (reset_vector_start address,ProcessorID (),size)
+
+let AArch64_TakeReset cold_reset =
+ let _ = assert' (~(HighestELUsingAArch32 ())) (Nothing) in
+ write_reg PSTATE_nRW (to_vec_dec ((1:ii),(0:ii))) >>
+ (if bitU_to_bool (HaveEL (reset_vector_start EL3))
+ then
+ write_reg_field CurrentEL "EL" (set_vector_start 3 EL3) >>
+ write_reg_bitfield SCR_EL3 "NS" B0
+ else
+ if bitU_to_bool (HaveEL (reset_vector_start EL2))
+ then write_reg_field CurrentEL "EL" (set_vector_start 3 EL2)
+ else write_reg_field CurrentEL "EL" (set_vector_start 3 EL1)) >>
+ let _ = AArch64_ResetControlRegisters cold_reset in
+ write_reg_bitfield SPSel "SP" B0 >>
+ wPSTATE_DAIF ((),reset_vector_start (Vector [B1;B1;B1;B1] 3 false)) >>
+ let PSTATE_SS = (0:ii) in
+ let PSTATE_IL = (0:ii) in
+ AArch64_ResetGeneralRegisters () >>
+ AArch64_ResetSIMDFPRegisters () >>
+ AArch64_ResetSpecialRegisters () >>
+ ResetExternalDebugRegisters cold_reset >>
+ let rv = to_vec_dec ((64:ii),(0:ii)) in
+ (if bitU_to_bool (HaveEL (reset_vector_start EL3))
+ then read_reg RVBAR_EL3
+ else
+ if bitU_to_bool (HaveEL (reset_vector_start EL2))
+ then read_reg RVBAR_EL2
+ else read_reg RVBAR_EL1) >>= fun rv ->
+ PAMax () >>= fun w__3 ->
+ let _ =
+ assert' ((IsZero
+ (reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length rv) (63:ii) w__3)))) &.
+ (IsZero
+ (reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length rv) (1:ii) (0:ii)))))) (Just "reset vector not correctly aligned") in
+ BranchTo (reset_vector_start (set_vector_start_to_length rv),BranchType_UNKNOWN)
+
+let AArch64_rMemSingle (read_buffer, address, size, acctype, wasaligned, exclusive) =
+ let _ =
+ assert' (eq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),size)))) (Nothing) in
+ let value = set_vector_start_to_length (to_vec_dec (size * (8:ii),(0:ii))) in
+ let iswrite = B0 in
+ let memaddrdesc =
+ AArch64_TranslateAddress (reset_vector_start address,acctype,iswrite,wasaligned,size) in
+ (if bitU_to_bool (IsFault memaddrdesc)
+ then AArch64_Abort (reset_vector_start address,memaddrdesc.AddressDescriptor_fault)
+ else return ()) >>
+ return (_rMem (read_buffer,memaddrdesc,size,acctype,exclusive))
+
+let AArch64_wMemSingle (write_buffer, address, size, acctype, wasaligned, exclusive, value) =
+ let _ =
+ assert' (eq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),size)))) (Nothing) in
+ let iswrite = B1 in
+ let memaddrdesc =
+ AArch64_TranslateAddress (reset_vector_start address,acctype,iswrite,wasaligned,size) in
+ (if bitU_to_bool (IsFault memaddrdesc)
+ then AArch64_Abort (reset_vector_start address,memaddrdesc.AddressDescriptor_fault)
+ else return ()) >>
+ let _ =
+ if bitU_to_bool memaddrdesc.AddressDescriptor_memattrs.MemoryAttributes_shareable
+ then ClearExclusiveByAddress (memaddrdesc.AddressDescriptor_paddress,ProcessorID (),size)
+ else () in
+ return (_wMem
+ (write_buffer,
+ memaddrdesc,
+ size,
+ acctype,
+ exclusive,
+ reset_vector_start (set_vector_start_to_length value)))
+
+let AArch64_ExclusiveMonitorsPass (address, size) =
+ let acctype = AccType_ATOMIC in
+ let iswrite = B1 in
+ let aligned =
+ eq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),size))) in
+ (if bitU_to_bool (~aligned)
+ then
+ let secondstage = B0 in
+ AArch64_Abort (reset_vector_start address,AArch64_AlignmentFault (acctype,iswrite,secondstage))
+ else return ()) >>
+ let passed = AArch64_IsExclusiveVA (reset_vector_start address,ProcessorID (),size) in
+ (if bitU_to_bool (~passed)
+ then return (B0,passed)
+ else
+ let memaddrdesc =
+ AArch64_TranslateAddress (reset_vector_start address,acctype,iswrite,aligned,size) in
+ (if bitU_to_bool (IsFault memaddrdesc)
+ then AArch64_Abort (reset_vector_start address,memaddrdesc.AddressDescriptor_fault)
+ else return ()) >>
+ let passed = IsExclusiveLocal (memaddrdesc.AddressDescriptor_paddress,ProcessorID (),size) in
+ let passed =
+ if bitU_to_bool passed
+ then
+ let _ = ClearExclusiveLocal (ProcessorID ()) in
+ if bitU_to_bool memaddrdesc.AddressDescriptor_memattrs.MemoryAttributes_shareable
+ then IsExclusiveGlobal (memaddrdesc.AddressDescriptor_paddress,ProcessorID (),size)
+ else passed
+ else passed in
+ return (passed,passed)) >>= fun (w__0, passed) ->
+ return w__0
+
+let decodeLoadsStores machineCode =
+ match machineCode with
+ | ((Vector [_;_;B0;B0;B1;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__80) ->
+ decodeLoadStoreExclusive (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B0;B1;B1;_;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__99) ->
+ return (decodeLoadRegisterLiteral (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [_;_;B1;B0;B1;_;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__118) ->
+ decodeLoadStoreNoAllocatePairOffset
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B0;B1;_;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__137) ->
+ decodeLoadStoreRegisterPairPostIndexed
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B0;B1;_;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__156) ->
+ decodeLoadStoreRegisterPairOffset (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B0;B1;_;B0;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__175) ->
+ decodeLoadStoreRegisterPairPreIndexed
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B0;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__194) ->
+ decodeLoadStoreRegisterUnscaledImmediate
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B0;B1;_;_;_;_;_;_;_;_;_;_] _ _) as v__213) ->
+ decodeLoadStoreRegisterImmediatePostIndexed
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B1;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__232) ->
+ decodeLoadStoreRegisterUnprivileged
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B1;B1;_;_;_;_;_;_;_;_;_;_] _ _) as v__251) ->
+ decodeLoadStoreRegisterImmediatePreIndexed
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B0;_;_;B1;_;_;_;_;_;_;_;_;_;B1;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__270) ->
+ decodeLoadStoreRegisterRegisterOffset
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__289) ->
+ decodeLoadStoreRegisterUnsignedImmediate
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [B0;_;B0;B0;B1;B1;B0;B0;B0;_;B0;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__308) ->
+ decodeAdvSIMDLoadStoreMultiStruct (reset_vector_start machineCode)
+ | ((Vector [B0;_;B0;B0;B1;B1;B0;B0;B1;_;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__327) ->
+ decodeAdvSIMDLoadStoreMultiStructPostIndexed (reset_vector_start machineCode)
+ | ((Vector [B0;_;B0;B0;B1;B1;B0;B1;B0;_;_;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__346) ->
+ decodeAdvSIMDLoadStoreSingleStruct (reset_vector_start machineCode)
+ | ((Vector [B0;_;B0;B0;B1;B1;B0;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__365) ->
+ decodeAdvSIMDLoadStoreSingleStructPostIndexed (reset_vector_start machineCode)
+ end
+
+let S1TranslationRegime () =
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ if bitU_to_bool (neq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL0))
+ then
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ return (set_vector_start 1 w__1)
+ else
+ IsSecure () >>= fun w__2 ->
+ return (if bitU_to_bool
+ (w__2 &.
+ ((HaveEL (reset_vector_start EL3)) &. (ELUsingAArch32 (reset_vector_start EL3))))
+ then EL3
+ else EL1)
+
+let AArch64_CheckForSMCTrap imm =
+ IsSecure () >>= fun w__0 ->
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ read_reg_field CurrentEL "EL" >>= fun w__2 ->
+ read_reg_bitfield HCR_EL2 "TSC" >>= fun w__3 ->
+ let route_to_el2 =
+ (HaveEL (reset_vector_start EL2)) &.
+ ((~w__0) &.
+ (((eq_vec (set_vector_start_to_length w__1, set_vector_start_to_length EL0)) |.
+ (eq_vec (set_vector_start_to_length w__2, set_vector_start_to_length EL1))) &.
+ (eq (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))) in
+ if bitU_to_bool route_to_el2
+ then not_implemented "AArch64_CheckForSMCTrap route_to_el2"
+ else return ()
+
+let CheckSystemAccess (op0, op1, crn, crm, op2, rt, read) =
+ let unallocated = B0 in
+ let need_secure = B0 in
+ let min_EL = to_vec_dec ((2:ii),(0:ii)) in
+ match op1 with
+ | ((Vector [B0;B0;_] _ _) as v__77) ->
+ let min_EL = EL1 in
+ return (need_secure,min_EL)
+ | Vector [B0;B1;B0] _ _ ->
+ let min_EL = EL1 in
+ return (need_secure,min_EL)
+ | Vector [B0;B1;B1] _ _ ->
+ let min_EL = EL0 in
+ return (need_secure,min_EL)
+ | Vector [B1;B0;B0] _ _ ->
+ let min_EL = EL2 in
+ return (need_secure,min_EL)
+ | Vector [B1;B0;B1] _ _ ->
+ UnallocatedEncoding () >>
+ return (need_secure,min_EL)
+ | Vector [B1;B1;B0] _ _ ->
+ let min_EL = EL3 in
+ return (need_secure,min_EL)
+ | Vector [B1;B1;B1] _ _ ->
+ let min_EL = EL1 in
+ let need_secure = B1 in
+ return (need_secure,min_EL)
+ end >>= fun (need_secure, min_EL) ->
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ if bitU_to_bool (lt_vec (set_vector_start_to_length w__0, set_vector_start_to_length min_EL))
+ then UnallocatedEncoding ()
+ else
+ IsSecure () >>= fun w__1 ->
+ if bitU_to_bool (need_secure &. (~w__1))
+ then UnallocatedEncoding ()
+ else
+ AArch64_CheckUnallocatedSystemAccess
+ (reset_vector_start op0,
+ reset_vector_start op1,
+ reset_vector_start crn,
+ reset_vector_start crm,
+ reset_vector_start op2,
+ read) >>= fun w__2 ->
+ if bitU_to_bool w__2
+ then UnallocatedEncoding ()
+ else return ()
+
+let ExternalSecureInvasiveDebugEnabled () =
+ IsSecure () >>= fun w__0 ->
+ if bitU_to_bool ((~(HaveEL (reset_vector_start EL3))) &. (~w__0))
+ then return B0
+ else
+ ExternalInvasiveDebugEnabled () >>= fun w__1 ->
+ signalSPIDEN () >>= fun w__2 ->
+ return (w__1 &. (eq (w__2, HIGH)))
+
+let decodeDataImmediate machineCode =
+ match machineCode with
+ | ((Vector [_;_;_;B1;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__35) ->
+ return (decodePCRelAddressing (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [_;_;_;B1;B0;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__42) ->
+ decodeAddSubtractImmediate (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B1;B0;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__49) ->
+ decodeLogicalImmediate (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B1;B0;B0;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__56) ->
+ decodeMoveWideImmediate (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B1;B0;B0;B1;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__63) ->
+ decodeBitfield (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B1;B0;B0;B1;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__70) ->
+ decodeExtract (reset_vector_start (set_vector_start_to_length machineCode))
+ end
+
+let SCTLR' () =
+ S1TranslationRegime () >>= fun w__0 ->
+ return (SCTLR (reset_vector_start w__0))
+
+let HaltingAllowed () =
+ Halted () >>= fun w__0 ->
+ DoubleLockStatus () >>= fun w__1 ->
+ if bitU_to_bool (w__0 |. w__1)
+ then return B0
+ else
+ IsSecure () >>= fun w__2 ->
+ if bitU_to_bool w__2
+ then ExternalSecureInvasiveDebugEnabled ()
+ else ExternalInvasiveDebugEnabled ()
+
+let decode machineCode =
+ match machineCode with
+ | ((Vector [_;_;_;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__0) ->
+ return (Just (Unallocated))
+ | ((Vector [_;_;_;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__5) ->
+ decodeDataImmediate (reset_vector_start machineCode)
+ | ((Vector [_;_;_;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__10) ->
+ decodeBranchesExceptionSystem (reset_vector_start machineCode)
+ | ((Vector [_;_;_;_;B1;_;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__15) ->
+ decodeLoadsStores (reset_vector_start machineCode)
+ | ((Vector [_;_;_;_;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__20) ->
+ decodeDataRegister (reset_vector_start machineCode)
+ | ((Vector [_;_;_;B0;B1;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__25) ->
+ decodeDataSIMDFPoint1 (reset_vector_start machineCode)
+ | ((Vector [_;_;_;B1;B1;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__30) ->
+ decodeDataSIMDFPoint2 (reset_vector_start machineCode)
+ | _ -> return (Nothing)
+ end
+
+let BigEndian () =
+ let bigend = B0 in
+ if bitU_to_bool (UsingAArch32 ())
+ then
+ read_reg PSTATE_E >>= fun w__0 ->
+ let bigend = neq_vec_range (w__0, (0:ii)) in
+ return bigend
+ else
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ if bitU_to_bool (eq_vec (set_vector_start_to_length w__1, set_vector_start_to_length EL0))
+ then
+ read_reg_bitfield SCTLR_EL1 "E0E" >>= fun w__2 ->
+ let bigend = neq (match w__2 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ return bigend
+ else
+ SCTLR' () >>= fun w__3 ->
+ read_reg_bitfield w__3 "EE" >>= fun w__4 ->
+ let bigend = neq (match w__4 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ return bigend
+
+let flush_read_buffer (read_buffer, size) =
+ let _ = assert' (eq_range (read_buffer.read_buffer_type_size, size)) (Nothing) in
+ let value = set_vector_start_to_length (to_vec_dec (size * (8:ii),(0:ii))) in
+ (if bitU_to_bool read_buffer.read_buffer_type_exclusive
+ then
+ match read_buffer.read_buffer_type_acctype with
+ | AccType_ATOMIC ->
+ rMem_ATOMIC
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__0 ->
+ return (set_vector_start_to_length w__0)
+ | AccType_ORDERED ->
+ rMem_ATOMIC_ORDERED
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__1 ->
+ return (set_vector_start_to_length w__1)
+ | _ ->
+ not_implemented "unimplemented memory access" >>
+ return value
+ end
+ else
+ match read_buffer.read_buffer_type_acctype with
+ | AccType_NORMAL ->
+ rMem_NORMAL
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__2 ->
+ return (set_vector_start_to_length w__2)
+ | AccType_STREAM ->
+ rMem_STREAM
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__3 ->
+ return (set_vector_start_to_length w__3)
+ | AccType_UNPRIV ->
+ rMem_NORMAL
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__4 ->
+ return (set_vector_start_to_length w__4)
+ | AccType_ORDERED ->
+ rMem_ORDERED
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__5 ->
+ return (set_vector_start_to_length w__5)
+ | AccType_ATOMIC -> return value
+ end) >>= fun value ->
+ BigEndian () >>= fun w__6 ->
+ let value =
+ if bitU_to_bool w__6
+ then
+ set_vector_start_to_length
+ (BigEndianReverse (reset_vector_start (set_vector_start_to_length value)))
+ else value in
+ return (set_vector_start_to_length value)
+
+let CheckSPAlignment () =
+ rSP (64:ii) >>= fun sp ->
+ let stack_align_check = B0 in
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ (if bitU_to_bool (eq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL0))
+ then
+ read_reg_bitfield SCTLR_EL1 "SA0" >>= fun w__1 ->
+ let stack_align_check = neq (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ return stack_align_check
+ else
+ SCTLR' () >>= fun w__2 ->
+ read_reg_bitfield w__2 "SA" >>= fun w__3 ->
+ let stack_align_check = neq (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ return stack_align_check) >>= fun stack_align_check ->
+ if bitU_to_bool
+ (stack_align_check &.
+ (neq_vec
+ (set_vector_start_to_length sp,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length sp),(16:ii))))))
+ then AArch64_SPAlignmentFault ()
+ else return ()
+
+let AArch64_CheckAlignment (address, size, acctype, iswrite) =
+ let aligned =
+ eq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),size))) in
+ SCTLR' () >>= fun w__0 ->
+ read_reg_bitfield w__0 "A" >>= fun A ->
+ (if bitU_to_bool
+ ((~aligned) &.
+ ((eq (acctype, AccType_ATOMIC)) |.
+ ((eq (acctype, AccType_ORDERED)) |.
+ (eq (match A with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))))
+ then
+ let secondstage = B0 in
+ AArch64_Abort (reset_vector_start address,AArch64_AlignmentFault (acctype,iswrite,secondstage))
+ else return ()) >>
+ return aligned
+
+let rMem' (read_buffer, address, size, acctype, exclusive) =
+ let read_buffer' = read_buffer in
+ let i = (0:ii) in
+ let iswrite = B0 in
+ AArch64_CheckAlignment (reset_vector_start address,size,acctype,iswrite) >>= fun aligned ->
+ let atomic =
+ (aligned &. (~((eq (acctype, AccType_VEC)) |. (eq (acctype, AccType_VECSTREAM))))) |.
+ (eq_range (size, (1:ii))) in
+ if bitU_to_bool (~atomic)
+ then
+ let _ = assert' (~exclusive) (Nothing) in
+ let _ = assert' (gt (size, (1:ii))) (Nothing) in
+ if bitU_to_bool (~exclusive)
+ then
+ AArch64_rMemSingle (read_buffer',reset_vector_start address,(1:ii),acctype,aligned,B0) >>= fun w__0 ->
+ let read_buffer' = w__0 in
+ (foreachM_inc ((1:ii),size - (1:ii),(1:ii)) read_buffer'
+ (fun i read_buffer' ->
+ AArch64_rMemSingle
+ (read_buffer',
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) i)),
+ (1:ii),
+ acctype,
+ aligned,
+ B0)))
+ else return read_buffer'
+ else AArch64_rMemSingle (read_buffer',reset_vector_start address,size,acctype,aligned,exclusive)
+
+let wMem' (write_buffer, address, size, acctype, value, exclusive) =
+ let write_buffer' = write_buffer in
+ let value' = set_vector_start_to_length value in
+ let i = (0:ii) in
+ let iswrite = B1 in
+ BigEndian () >>= fun w__0 ->
+ let value' =
+ if bitU_to_bool w__0
+ then
+ set_vector_start_to_length
+ (BigEndianReverse (reset_vector_start (set_vector_start_to_length value')))
+ else value' in
+ AArch64_CheckAlignment (reset_vector_start address,size,acctype,iswrite) >>= fun aligned ->
+ let atomic =
+ (aligned &. (~((eq (acctype, AccType_VEC)) |. (eq (acctype, AccType_VECSTREAM))))) |.
+ (eq_range (size, (1:ii))) in
+ let exclusiveSuccess = B0 in
+ if bitU_to_bool (~atomic)
+ then
+ let _ = assert' (~exclusive) (Nothing) in
+ if bitU_to_bool (~exclusive)
+ then
+ let _ = assert' (gt (size, (1:ii))) (Nothing) in
+ AArch64_wMemSingle
+ (write_buffer',
+ reset_vector_start address,
+ (1:ii),
+ acctype,
+ aligned,
+ B0,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length value') (7:ii) (0:ii)))) >>= fun w__1 ->
+ let write_buffer' = w__1 in
+ (foreachM_inc ((1:ii),size - (1:ii),(1:ii)) write_buffer'
+ (fun i write_buffer' ->
+ AArch64_wMemSingle
+ (write_buffer',
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) i)),
+ (1:ii),
+ acctype,
+ aligned,
+ B0,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length value') (((8:ii) * i) + (7:ii)) ((8:ii) * i))))))
+ else return write_buffer'
+ else
+ AArch64_wMemSingle
+ (write_buffer',
+ reset_vector_start address,
+ size,
+ acctype,
+ aligned,
+ exclusive,
+ reset_vector_start (set_vector_start_to_length value'))
+
+let rMem (read_buffer, address, size, acctype) =
+ rMem' (read_buffer,reset_vector_start address,size,acctype,B0)
+
+let rMem_exclusive (read_buffer, address, size, acctype) =
+ rMem' (read_buffer,reset_vector_start address,size,acctype,B1)
+
+let wMem (write_buffer, address, size, acctype, value) =
+ wMem'
+ (write_buffer,
+ reset_vector_start address,
+ size,
+ acctype,
+ reset_vector_start (set_vector_start_to_length value),
+ B0)
+
+let wMem_exclusive (write_buffer, address, size, acctype, value) =
+ wMem'
+ (write_buffer,
+ reset_vector_start address,
+ size,
+ acctype,
+ reset_vector_start (set_vector_start_to_length value),
+ B1)
+
+
+
+let execute_TMStart t =
+ read_reg TxNestingLevel >>= fun nesting ->
+ read_reg_field TXIDR_EL0 "DEPTH" >>= fun w__0 ->
+ if bitU_to_bool
+ (lt_vec_unsigned (set_vector_start_to_length nesting, set_vector_start_to_length w__0))
+ then
+ write_reg
+ TxNestingLevel
+ (set_vector_start 7 (add_VIV (reset_vector_start (set_vector_start_to_length nesting)) (1:ii))) >>
+ let status = to_vec_dec ((64:ii),(0:ii)) in
+ (if bitU_to_bool (eq_vec_range (set_vector_start_to_length nesting, (0:ii)))
+ then read_reg TMStartEffect
+ else return status) >>= fun status ->
+ wX (t,reset_vector_start (set_vector_start_to_length status))
+ else
+ let status = to_vec_dec ((64:ii),(0:ii)) in
+ let status = update_pos status (10:ii) B1 in
+ write_reg TMAbortEffect status
+
+let execute_TMCommit () =
+ read_reg TxNestingLevel >>= fun nesting ->
+ (if bitU_to_bool (eq_vec_range (set_vector_start_to_length nesting, (1:ii)))
+ then TMCommitEffect ()
+ else
+ if bitU_to_bool (eq_vec_range (set_vector_start_to_length nesting, (0:ii)))
+ then AArch64_UndefinedFault ()
+ else return ()) >>
+ write_reg
+ TxNestingLevel
+ (set_vector_start 7 (minus_VIV (reset_vector_start (set_vector_start_to_length nesting)) (1:ii)))
+
+let execute_TMTest () =
+ read_reg TxNestingLevel >>= fun w__0 ->
+ if bitU_to_bool (gt_vec_range (w__0, (0:ii)))
+ then wPSTATE_NZCV ((),reset_vector_start (Vector [B0;B0;B0;B0] 3 false))
+ else wPSTATE_NZCV ((),reset_vector_start (Vector [B0;B1;B0;B0] 3 false))
+
+let execute_TMAbort (retry, reason) =
+ read_reg TxNestingLevel >>= fun w__0 ->
+ if bitU_to_bool (gt_vec_range (w__0, (0:ii)))
+ then
+ let status = to_vec_dec ((64:ii),(0:ii)) in
+ let status = update status (4:ii) (0:ii) reason in
+ let status = update_pos status (8:ii) retry in
+ let status = update_pos status (9:ii) B1 in
+ write_reg TMAbortEffect status
+ else return ()
+
+let execute_CompareAndBranch (t, datasize, iszero, offset) =
+ rX (datasize,t) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ if bitU_to_bool
+ (eq_bit (IsZero (reset_vector_start (set_vector_start_to_length operand1)), iszero))
+ then
+ rPC () >>= fun w__1 ->
+ BranchTo
+ (reset_vector_start (set_vector_start_to_length
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__1))
+ (reset_vector_start (set_vector_start_to_length offset)))),
+ BranchType_JMP)
+ else return ()
+
+let execute_BranchConditional (offset, condition) =
+ ConditionHolds (reset_vector_start condition) >>= fun w__0 ->
+ if bitU_to_bool w__0
+ then
+ rPC () >>= fun w__1 ->
+ BranchTo
+ (reset_vector_start (set_vector_start_to_length
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__1))
+ (reset_vector_start (set_vector_start_to_length offset)))),
+ BranchType_JMP)
+ else return ()
+
+let execute_GenerateExceptionEL1 imm = AArch64_CallSupervisor (reset_vector_start imm)
+
+let execute_GenerateExceptionEL2 imm =
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ IsSecure () >>= fun w__2 ->
+ (if bitU_to_bool
+ ((~(HaveEL (reset_vector_start EL2))) |.
+ ((eq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL0)) |.
+ ((eq_vec (set_vector_start_to_length w__1, set_vector_start_to_length EL1)) &. w__2)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool (HaveEL (reset_vector_start EL3))
+ then read_reg_bitfield SCR_EL3 "HCE"
+ else
+ read_reg_bitfield HCR_EL2 "HCD" >>= fun w__4 ->
+ return (NOT' w__4)) >>= fun hvc_enable ->
+ if bitU_to_bool (eq (match hvc_enable with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then AArch64_UndefinedFault ()
+ else AArch64_CallHypervisor (reset_vector_start imm)
+
+let execute_GenerateExceptionEL3 imm =
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ (if bitU_to_bool
+ ((~(HaveEL (reset_vector_start EL3))) |.
+ (eq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL0)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ AArch64_CheckForSMCTrap (reset_vector_start imm) >>
+ read_reg_bitfield SCR_EL3 "SMD" >>= fun w__1 ->
+ if bitU_to_bool (eq (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then AArch64_UndefinedFault ()
+ else AArch64_CallSecureMonitor (reset_vector_start imm)
+
+let execute_DebugBreakpoint comment = AArch64_SoftwareBreakpoint (reset_vector_start comment)
+
+let execute_ExternalDebugBreakpoint () = Halt (reset_vector_start DebugHalt_HaltInstruction)
+
+let execute_DebugSwitchToExceptionLevel target_level =
+ DCPSInstruction (reset_vector_start target_level)
+
+let execute_MoveSystemImmediate (operand, field') =
+ match field' with
+ | PSTATEField_SP -> write_reg_bitfield SPSel "SP" (access operand (0:ii))
+ | PSTATEField_DAIFSet ->
+ read_reg_bitfield DAIF "D" >>= fun w__0 ->
+ write_reg_bitfield DAIF "D" (w__0 |. (access operand (3:ii))) >>
+ read_reg_bitfield DAIF "A" >>= fun w__1 ->
+ write_reg_bitfield DAIF "A" (w__1 |. (access operand (2:ii))) >>
+ read_reg_bitfield DAIF "I" >>= fun w__2 ->
+ write_reg_bitfield DAIF "I" (w__2 |. (access operand (1:ii))) >>
+ read_reg_bitfield DAIF "F" >>= fun w__3 ->
+ write_reg_bitfield DAIF "F" (w__3 |. (access operand (0:ii)))
+ | PSTATEField_DAIFClr ->
+ read_reg_bitfield DAIF "D" >>= fun w__4 ->
+ write_reg_bitfield DAIF "D" (w__4 &. (NOT' (access operand (3:ii)))) >>
+ read_reg_bitfield DAIF "A" >>= fun w__5 ->
+ write_reg_bitfield DAIF "A" (w__5 &. (NOT' (access operand (2:ii)))) >>
+ read_reg_bitfield DAIF "I" >>= fun w__6 ->
+ write_reg_bitfield DAIF "I" (w__6 &. (NOT' (access operand (1:ii)))) >>
+ read_reg_bitfield DAIF "F" >>= fun w__7 ->
+ write_reg_bitfield DAIF "F" (w__7 &. (NOT' (access operand (0:ii))))
+ end
+
+let execute_Hint op =
+ match op with
+ | SystemHintOp_YIELD -> return (Hint_Yield ())
+ | SystemHintOp_WFE ->
+ EventRegistered () >>= fun w__0 ->
+ if bitU_to_bool w__0
+ then ClearEventRegister ()
+ else
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ (if bitU_to_bool (eq_vec (set_vector_start_to_length w__1, set_vector_start_to_length EL0))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL1,B1)
+ else return ()) >>
+ IsSecure () >>= fun w__2 ->
+ read_reg_field CurrentEL "EL" >>= fun w__3 ->
+ read_reg_field CurrentEL "EL" >>= fun w__4 ->
+ (if bitU_to_bool
+ ((HaveEL (reset_vector_start EL2)) &.
+ ((~w__2) &.
+ ((eq_vec (set_vector_start_to_length w__3, set_vector_start_to_length EL0)) |.
+ (eq_vec (set_vector_start_to_length w__4, set_vector_start_to_length EL1)))))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL2,B1)
+ else return ()) >>
+ read_reg_field CurrentEL "EL" >>= fun w__5 ->
+ (if bitU_to_bool
+ ((HaveEL (reset_vector_start EL3)) &.
+ (neq_vec (set_vector_start_to_length w__5, set_vector_start_to_length EL3)))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL3,B1)
+ else return ()) >>
+ WaitForEvent ()
+ | SystemHintOp_WFI ->
+ InterruptPending () >>= fun w__6 ->
+ if bitU_to_bool (~w__6)
+ then
+ read_reg_field CurrentEL "EL" >>= fun w__7 ->
+ (if bitU_to_bool (eq_vec (set_vector_start_to_length w__7, set_vector_start_to_length EL0))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL1,B0)
+ else return ()) >>
+ IsSecure () >>= fun w__8 ->
+ read_reg_field CurrentEL "EL" >>= fun w__9 ->
+ read_reg_field CurrentEL "EL" >>= fun w__10 ->
+ (if bitU_to_bool
+ ((HaveEL (reset_vector_start EL2)) &.
+ ((~w__8) &.
+ ((eq_vec (set_vector_start_to_length w__9, set_vector_start_to_length EL0)) |.
+ (eq_vec (set_vector_start_to_length w__10, set_vector_start_to_length EL1)))))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL2,B0)
+ else return ()) >>
+ read_reg_field CurrentEL "EL" >>= fun w__11 ->
+ (if bitU_to_bool
+ ((HaveEL (reset_vector_start EL3)) &.
+ (neq_vec (set_vector_start_to_length w__11, set_vector_start_to_length EL3)))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL3,B0)
+ else return ()) >>
+ WaitForInterrupt ()
+ else return ()
+ | SystemHintOp_SEV -> return (SendEvent ())
+ | SystemHintOp_SEVL -> EventRegisterSet ()
+ | _ -> return ()
+ end
+
+let execute_ClearExclusiveMonitor imm = return (ClearExclusiveLocal (ProcessorID ()))
+
+let execute_Barrier (op, domain, types) =
+ match op with
+ | MemBarrierOp_DSB -> DataSynchronizationBarrier (domain,types)
+ | MemBarrierOp_DMB -> DataMemoryBarrier (domain,types)
+ | MemBarrierOp_ISB -> InstructionSynchronizationBarrier ()
+ end
+
+let execute_System (t, sys_op0, sys_op1, sys_op2, sys_crn, sys_crm, has_result) =
+ if bitU_to_bool has_result
+ then
+ SysOp_R (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2) >>= fun w__0 ->
+ wX (t,reset_vector_start (set_vector_start_to_length w__0))
+ else
+ rX ((64:ii),t) >>= fun w__1 ->
+ SysOp_W (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2,reset_vector_start w__1)
+
+let execute_MoveSystemRegister (t, sys_op0, sys_op1, sys_op2, sys_crn, sys_crm, read) =
+ if bitU_to_bool read
+ then
+ System_Get (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2) >>= fun w__0 ->
+ wX (t,reset_vector_start (set_vector_start_to_length w__0))
+ else
+ rX ((64:ii),t) >>= fun w__1 ->
+ System_Put (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2,reset_vector_start w__1)
+
+let execute_ImplementationDefinedTestBeginEnd isEnd =
+ return (if bitU_to_bool isEnd
+ then info "test ends"
+ else info "test begins")
+
+let execute_ImplementationDefinedStopFetching () = return (info "stop fetching instructions")
+
+let execute_ImplementationDefinedThreadStart () = return (info "thread start")
+
+let execute_TestBitAndBranch (t, datasize, bit_pos, bit_val, offset) =
+ rX (datasize,t) >>= fun w__0 ->
+ let operand = set_vector_start_to_length w__0 in
+ if bitU_to_bool (eq_bit (access (set_vector_start_to_length operand) bit_pos, bit_val))
+ then
+ rPC () >>= fun w__1 ->
+ BranchTo
+ (reset_vector_start (set_vector_start_to_length
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__1))
+ (reset_vector_start (set_vector_start_to_length offset)))),
+ BranchType_JMP)
+ else return ()
+
+let execute_BranchImmediate (branch_type, offset) =
+ (if bitU_to_bool (eq (branch_type, BranchType_CALL))
+ then
+ rPC () >>= fun w__0 ->
+ wX
+ ((30:ii),
+ reset_vector_start (set_vector_start_to_length
+ (add_VIV (reset_vector_start (set_vector_start_to_length w__0)) (4:ii))))
+ else return ()) >>
+ rPC () >>= fun w__1 ->
+ BranchTo
+ (reset_vector_start (set_vector_start_to_length
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__1))
+ (reset_vector_start (set_vector_start_to_length offset)))),
+ branch_type)
+
+let execute_BranchRegister (n, branch_type) =
+ rX ((64:ii),n) >>= fun target ->
+ (if bitU_to_bool (eq (branch_type, BranchType_CALL))
+ then
+ rPC () >>= fun w__0 ->
+ wX
+ ((30:ii),
+ reset_vector_start (set_vector_start_to_length
+ (add_VIV (reset_vector_start (set_vector_start_to_length w__0)) (4:ii))))
+ else return ()) >>
+ BranchTo (reset_vector_start (set_vector_start_to_length target),branch_type)
+
+let execute_ExceptionReturn () =
+ rELR' () >>= fun w__0 ->
+ rSPSR () >>= fun w__1 ->
+ AArch64_ExceptionReturn (reset_vector_start w__0,reset_vector_start w__1)
+
+let execute_DebugRestorePState () = DRPSInstruction ()
+
+let execute_LoadLiteral (t, memop, _signed, size, offset, datasize) =
+ rPC () >>= fun w__0 ->
+ let address =
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__0))
+ (reset_vector_start (set_vector_start_to_length offset))) in
+ let data = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ match memop with
+ | MemOp_LOAD ->
+ rMem (empty_read_buffer,reset_vector_start address,size,AccType_NORMAL) >>= fun w__1 ->
+ flush_read_buffer (w__1,size) >>= fun w__2 ->
+ let data = set_vector_start_to_length w__2 in
+ (if bitU_to_bool _signed
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length data)))))
+ else wX (t,reset_vector_start (set_vector_start_to_length data))) >>
+ return data
+ | MemOp_PREFETCH -> return data
+ end >>= fun data ->
+ return ()
+
+let execute_LoadStoreAcqExc (n, t, t2, s, acctype, excl, pair, memop, elsize, regsize, datasize) =
+ let address = to_vec_dec ((64:ii),(0:ii)) in
+ let data = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let dbytes = quot datasize (8:ii) in
+ let rt_unknown = B0 in
+ let rn_unknown = B0 in
+ (if bitU_to_bool ((eq (memop, MemOp_LOAD)) &. (pair &. (eq_range (t, t2))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool ((eq (memop, MemOp_STORE)) &. excl)
+ then
+ (if bitU_to_bool ((eq_range (s, t)) |. (pair &. (eq_range (s, t2))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ if bitU_to_bool ((eq_range (s, n)) &. (neq_range (n, (31:ii))))
+ then UnallocatedEncoding ()
+ else return ()
+ else return ()) >>
+ let status = B0 in
+ (if bitU_to_bool ((eq (memop, MemOp_STORE)) &. excl)
+ then
+ speculate_exclusive_success () >>= fun w__0 ->
+ let status = if bitU_to_bool w__0 then B0 else B1 in
+ wX
+ (s,
+ reset_vector_start (set_vector_start_to_length
+ (ZeroExtend
+ ((32:ii),
+ reset_vector_start (set_vector_start_to_length (Vector [status] 0 false)))))) >>
+ return status
+ else return status) >>= fun status ->
+ (if bitU_to_bool (eq (match status with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then return (address,data,status)
+ else
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ CheckSPAlignment () >>
+ rSP (64:ii)
+ else
+ if bitU_to_bool rn_unknown
+ then
+ let address = to_vec_dec ((64:ii),UNKNOWN) in
+ return address
+ else rX ((64:ii),n)) >>= fun address ->
+ match memop with
+ | MemOp_STORE ->
+ wMem_Addr (reset_vector_start address,dbytes,acctype,excl) >>
+ (if bitU_to_bool rt_unknown
+ then
+ let data = set_vector_start_to_length (to_vec_dec (length data,UNKNOWN)) in
+ return data
+ else
+ if bitU_to_bool pair
+ then
+ let _ = assert' excl (Nothing) in
+ rX (regsize,t) >>= fun w__3 ->
+ let el1 = set_vector_start_to_length w__3 in
+ rX (length el1,t2) >>= fun w__4 ->
+ let el2 = set_vector_start_to_length w__4 in
+ BigEndian () >>= fun w__5 ->
+ let data =
+ if bitU_to_bool w__5
+ then
+ set_vector_start_to_length
+ ((set_vector_start_to_length el1) ^^ (set_vector_start_to_length el2))
+ else
+ set_vector_start_to_length
+ ((set_vector_start_to_length el2) ^^ (set_vector_start_to_length el1)) in
+ return data
+ else
+ rX (length data,t) >>= fun w__6 ->
+ return (set_vector_start_to_length w__6)) >>= fun data ->
+ (if bitU_to_bool excl
+ then
+ let status = B1 in
+ AArch64_ExclusiveMonitorsPass (reset_vector_start address,dbytes) >>= fun w__7 ->
+ if bitU_to_bool w__7
+ then
+ wMem_exclusive
+ (empty_write_buffer,
+ reset_vector_start address,
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data)) >>= fun w__8 ->
+ flush_write_buffer_exclusive w__8
+ else return status
+ else
+ wMem
+ (empty_write_buffer,
+ reset_vector_start address,
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data)) >>= fun w__10 ->
+ flush_write_buffer w__10 >>
+ return status) >>= fun status ->
+ return (data,status)
+ | MemOp_LOAD ->
+ let _ =
+ if bitU_to_bool excl
+ then AArch64_SetExclusiveMonitors (reset_vector_start address,dbytes)
+ else () in
+ (if bitU_to_bool pair
+ then
+ let _ = assert' excl (Nothing) in
+ if bitU_to_bool rt_unknown
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length (to_vec_dec (length data,UNKNOWN)))) >>
+ return data
+ else
+ if bitU_to_bool (eq_range (elsize, (32:ii)))
+ then
+ rMem_exclusive (empty_read_buffer,reset_vector_start address,dbytes,acctype) >>= fun w__11 ->
+ flush_read_buffer (w__11,dbytes) >>= fun w__12 ->
+ let data = set_vector_start_to_length w__12 in
+ BigEndian () >>= fun w__13 ->
+ (if bitU_to_bool w__13
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length data) (datasize - (1:ii)) elsize))) >>
+ wX
+ (t2,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length data) (elsize - (1:ii)) (0:ii))))
+ else
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length data) (elsize - (1:ii)) (0:ii)))) >>
+ wX
+ (t2,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length data) (datasize - (1:ii)) elsize)))) >>
+ return data
+ else
+ (if bitU_to_bool
+ (neq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),dbytes))))
+ then
+ let iswrite = B0 in
+ let secondstage = B0 in
+ AArch64_Abort
+ (reset_vector_start address,
+ AArch64_AlignmentFault (acctype,iswrite,secondstage))
+ else return ()) >>
+ rMem_exclusive
+ (empty_read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (0:ii))),
+ (8:ii),
+ acctype) >>= fun read_buffer ->
+ rMem_exclusive
+ (read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (8:ii))),
+ (8:ii),
+ acctype) >>= fun w__14 ->
+ let read_buffer = w__14 in
+ flush_read_buffer (read_buffer,(8:ii) * (2:ii)) >>= fun w__15 ->
+ let value = set_vector_start 127 w__15 in
+ wX (t,reset_vector_start (set_vector_start_to_length (slice value (63:ii) (0:ii)))) >>
+ wX
+ (t2,
+ reset_vector_start (set_vector_start_to_length (slice value (127:ii) (64:ii)))) >>
+ return data
+ else
+ rMem' (empty_read_buffer,reset_vector_start address,dbytes,acctype,excl) >>= fun w__16 ->
+ flush_read_buffer (w__16,dbytes) >>= fun w__17 ->
+ let data = set_vector_start_to_length w__17 in
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (set_vector_start_to_length
+ (ZeroExtend (regsize,reset_vector_start (set_vector_start_to_length data)))))) >>
+ return data) >>= fun data ->
+ return (data,status)
+ end >>= fun (data, status) ->
+ return (address,data,status)) >>= fun (address, data, status) ->
+ return ()
+
+let execute_LoadStorePairNonTemp (wback, postindex, n, t, t2, acctype, memop, scale, datasize, offset) =
+ let address = to_vec_dec ((64:ii),(0:ii)) in
+ let data1 = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,(0:ii))) in
+ let dbytes = quot datasize (8:ii) in
+ let rt_unknown = B0 in
+ (if bitU_to_bool ((eq (memop, MemOp_LOAD)) &. (eq_range (t, t2)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ CheckSPAlignment () >>
+ rSP (64:ii)
+ else rX ((64:ii),n)) >>= fun address ->
+ let address =
+ if bitU_to_bool (~postindex)
+ then
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)))
+ else address in
+ (if bitU_to_bool (eq (memop, MemOp_STORE))
+ then wMem_Addr (reset_vector_start address,dbytes * (2:ii),acctype,B0)
+ else return ()) >>
+ (if bitU_to_bool wback
+ then
+ let address' =
+ if bitU_to_bool (~postindex)
+ then address
+ else
+ add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)) in
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then wSP ((),reset_vector_start (set_vector_start_to_length address'))
+ else wX (n,reset_vector_start (set_vector_start_to_length address'))
+ else return ()) >>
+ match memop with
+ | MemOp_STORE ->
+ (if bitU_to_bool (rt_unknown &. (eq_range (t, n)))
+ then
+ let data1 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ return data1
+ else
+ rX (length data1,t) >>= fun w__2 ->
+ return (set_vector_start_to_length w__2)) >>= fun data1 ->
+ (if bitU_to_bool (rt_unknown &. (eq_range (t2, n)))
+ then
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ return data2
+ else
+ rX (length data1,t2) >>= fun w__3 ->
+ return (set_vector_start_to_length w__3)) >>= fun data2 ->
+ wMem
+ (empty_write_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (0:ii))),
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data1)) >>= fun write_buffer ->
+ wMem
+ (write_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) dbytes)),
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data2)) >>= fun w__4 ->
+ let write_buffer = w__4 in
+ flush_write_buffer write_buffer >>
+ return (data1,data2)
+ | MemOp_LOAD ->
+ rMem
+ (empty_read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (0:ii))),
+ dbytes,
+ acctype) >>= fun read_buffer ->
+ rMem
+ (read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) dbytes)),
+ dbytes,
+ acctype) >>= fun w__5 ->
+ let read_buffer = w__5 in
+ flush_read_buffer (read_buffer,dbytes * (2:ii)) >>= fun w__6 ->
+ let read_data = set_vector_start_to_length w__6 in
+ let data1 =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length read_data) (datasize - (1:ii)) (0:ii)) in
+ let data2 =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length read_data) ((datasize * (2:ii)) - (1:ii)) datasize) in
+ let (data1, data2) =
+ if bitU_to_bool rt_unknown
+ then
+ let data1 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ (data1,data2)
+ else (data1,data2) in
+ wX (t,reset_vector_start (set_vector_start_to_length data1)) >>
+ wX (t2,reset_vector_start (set_vector_start_to_length data2)) >>
+ return (data1,data2)
+ end >>= fun (data1, data2) ->
+ return ()
+
+let execute_LoadImmediate (n, t, acctype, memop, _signed, wback, postindex, offset, regsize, datasize) =
+ let address = to_vec_dec ((64:ii),(0:ii)) in
+ let data = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let wb_unknown = B0 in
+ let rt_unknown = B0 in
+ (if bitU_to_bool
+ ((eq (memop, MemOp_LOAD)) &. (wback &. ((eq_range (n, t)) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (memop, MemOp_STORE)) &. (wback &. ((eq_range (n, t)) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ (if bitU_to_bool (neq (memop, MemOp_PREFETCH))
+ then CheckSPAlignment ()
+ else return ()) >>
+ rSP (64:ii)
+ else rX ((64:ii),n)) >>= fun address ->
+ let address =
+ if bitU_to_bool (~postindex)
+ then
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)))
+ else address in
+ (if bitU_to_bool (eq (memop, MemOp_STORE))
+ then wMem_Addr (reset_vector_start address,quot datasize (8:ii),acctype,B0)
+ else return ()) >>
+ (if bitU_to_bool wback
+ then
+ let address' =
+ if bitU_to_bool (~postindex)
+ then address
+ else
+ add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)) in
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then wSP ((),reset_vector_start (set_vector_start_to_length address'))
+ else wX (n,reset_vector_start (set_vector_start_to_length address'))
+ else return ()) >>
+ match memop with
+ | MemOp_STORE ->
+ (if bitU_to_bool rt_unknown
+ then
+ let data = set_vector_start_to_length (to_vec_dec (length data,UNKNOWN)) in
+ return data
+ else
+ rX (length data,t) >>= fun w__2 ->
+ return (set_vector_start_to_length w__2)) >>= fun data ->
+ wMem
+ (empty_write_buffer,
+ reset_vector_start address,
+ quot datasize (8:ii),
+ acctype,
+ reset_vector_start (set_vector_start_to_length data)) >>= fun w__3 ->
+ flush_write_buffer w__3 >>
+ return data
+ | MemOp_LOAD ->
+ rMem (empty_read_buffer,reset_vector_start address,quot datasize (8:ii),acctype) >>= fun w__4 ->
+ flush_read_buffer (w__4,quot datasize (8:ii)) >>= fun w__5 ->
+ let data = set_vector_start_to_length w__5 in
+ (if bitU_to_bool _signed
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (set_vector_start_to_length
+ (SignExtend (regsize,reset_vector_start (set_vector_start_to_length data))))))
+ else
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (set_vector_start_to_length
+ (ZeroExtend (regsize,reset_vector_start (set_vector_start_to_length data))))))) >>
+ return data
+ | MemOp_PREFETCH -> return data
+ end >>= fun data ->
+ return ()
+
+let execute_LoadRegister (n, t, m, acctype, memop, _signed, wback, postindex, extend_type, shift, regsize, datasize) =
+ ExtendReg ((64:ii),m,extend_type,shift) >>= fun offset ->
+ let address = to_vec_dec ((64:ii),(0:ii)) in
+ let data = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let wb_unknown = B0 in
+ let rt_unknown = B0 in
+ (if bitU_to_bool
+ ((eq (memop, MemOp_LOAD)) &. (wback &. ((eq_range (n, t)) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (memop, MemOp_STORE)) &. (wback &. ((eq_range (n, t)) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ (if bitU_to_bool (neq (memop, MemOp_PREFETCH))
+ then CheckSPAlignment ()
+ else return ()) >>
+ rSP (64:ii)
+ else rX ((64:ii),n)) >>= fun address ->
+ let address =
+ if bitU_to_bool (~postindex)
+ then
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)))
+ else address in
+ (if bitU_to_bool (eq (memop, MemOp_STORE))
+ then wMem_Addr (reset_vector_start address,quot datasize (8:ii),acctype,B0)
+ else return ()) >>
+ (if bitU_to_bool wback
+ then
+ let address' =
+ if bitU_to_bool (~postindex)
+ then address
+ else
+ add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)) in
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then wSP ((),reset_vector_start (set_vector_start_to_length address'))
+ else wX (n,reset_vector_start (set_vector_start_to_length address'))
+ else return ()) >>
+ match memop with
+ | MemOp_STORE ->
+ (if bitU_to_bool rt_unknown
+ then
+ let data = set_vector_start_to_length (to_vec_dec (length data,UNKNOWN)) in
+ return data
+ else
+ rX (length data,t) >>= fun w__2 ->
+ return (set_vector_start_to_length w__2)) >>= fun data ->
+ wMem
+ (empty_write_buffer,
+ reset_vector_start address,
+ quot datasize (8:ii),
+ acctype,
+ reset_vector_start (set_vector_start_to_length data)) >>= fun w__3 ->
+ flush_write_buffer w__3 >>
+ return data
+ | MemOp_LOAD ->
+ rMem (empty_read_buffer,reset_vector_start address,quot datasize (8:ii),acctype) >>= fun w__4 ->
+ flush_read_buffer (w__4,quot datasize (8:ii)) >>= fun w__5 ->
+ let data = set_vector_start_to_length w__5 in
+ (if bitU_to_bool _signed
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (set_vector_start_to_length
+ (SignExtend (regsize,reset_vector_start (set_vector_start_to_length data))))))
+ else
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (set_vector_start_to_length
+ (ZeroExtend (regsize,reset_vector_start (set_vector_start_to_length data))))))) >>
+ return data
+ | MemOp_PREFETCH -> return data
+ end >>= fun data ->
+ return ()
+
+let execute_LoadStorePair (wback, postindex, n, t, t2, acctype, memop, _signed, datasize, offset) =
+ let address = to_vec_dec ((64:ii),(0:ii)) in
+ let data1 = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,(0:ii))) in
+ let dbytes = quot datasize (8:ii) in
+ let rt_unknown = B0 in
+ let wb_unknown = B0 in
+ (if bitU_to_bool
+ ((eq (memop, MemOp_LOAD)) &.
+ (wback &. (((eq_range (t, n)) |. (eq_range (t2, n))) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (memop, MemOp_STORE)) &.
+ (wback &. (((eq_range (t, n)) |. (eq_range (t2, n))) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool ((eq (memop, MemOp_LOAD)) &. (eq_range (t, t2)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ CheckSPAlignment () >>
+ rSP (64:ii)
+ else rX ((64:ii),n)) >>= fun address ->
+ let address =
+ if bitU_to_bool (~postindex)
+ then
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)))
+ else address in
+ (if bitU_to_bool (eq (memop, MemOp_STORE))
+ then wMem_Addr (reset_vector_start address,dbytes * (2:ii),acctype,B0)
+ else return ()) >>
+ (if bitU_to_bool wback
+ then
+ let address' =
+ if bitU_to_bool (~postindex)
+ then address
+ else
+ add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)) in
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then wSP ((),reset_vector_start (set_vector_start_to_length address'))
+ else wX (n,reset_vector_start (set_vector_start_to_length address'))
+ else return ()) >>
+ match memop with
+ | MemOp_STORE ->
+ (if bitU_to_bool (rt_unknown &. (eq_range (t, n)))
+ then
+ let data1 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ return data1
+ else
+ rX (length data1,t) >>= fun w__2 ->
+ return (set_vector_start_to_length w__2)) >>= fun data1 ->
+ (if bitU_to_bool (rt_unknown &. (eq_range (t2, n)))
+ then
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ return data2
+ else
+ rX (length data1,t2) >>= fun w__3 ->
+ return (set_vector_start_to_length w__3)) >>= fun data2 ->
+ wMem
+ (empty_write_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (0:ii))),
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data1)) >>= fun write_buffer ->
+ wMem
+ (write_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) dbytes)),
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data2)) >>= fun w__4 ->
+ let write_buffer = w__4 in
+ flush_write_buffer write_buffer >>
+ return (data1,data2)
+ | MemOp_LOAD ->
+ rMem
+ (empty_read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (0:ii))),
+ dbytes,
+ acctype) >>= fun read_buffer ->
+ rMem
+ (read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) dbytes)),
+ dbytes,
+ acctype) >>= fun w__5 ->
+ let read_buffer = w__5 in
+ flush_read_buffer (read_buffer,dbytes * (2:ii)) >>= fun w__6 ->
+ let read_data = set_vector_start_to_length w__6 in
+ let data1 =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length read_data) (datasize - (1:ii)) (0:ii)) in
+ let data2 =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length read_data) ((datasize * (2:ii)) - (1:ii)) datasize) in
+ let (data1, data2) =
+ if bitU_to_bool rt_unknown
+ then
+ let data1 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ (data1,data2)
+ else (data1,data2) in
+ (if bitU_to_bool _signed
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length data1))))) >>
+ wX
+ (t2,
+ reset_vector_start (set_vector_start_to_length
+ (SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length data2)))))
+ else
+ wX (t,reset_vector_start (set_vector_start_to_length data1)) >>
+ wX (t2,reset_vector_start (set_vector_start_to_length data2))) >>
+ return (data1,data2)
+ end >>= fun (data1, data2) ->
+ return ()
+
+let execute_AddSubImmediate (d, n, datasize, sub_op, setflags, imm) =
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ rSP datasize >>= fun w__0 ->
+ return (set_vector_start_to_length w__0)
+ else
+ rX (datasize,n) >>= fun w__1 ->
+ return (set_vector_start_to_length w__1)) >>= fun operand1 ->
+ let operand2 = set_vector_start_to_length imm in
+ let carry_in = B0 in
+ let (operand2, carry_in) =
+ if bitU_to_bool sub_op
+ then
+ let operand2 =
+ set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length operand2))) in
+ let carry_in = B1 in
+ (operand2,carry_in)
+ else
+ let carry_in = B0 in
+ (operand2,carry_in) in
+ let (result, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ carry_in)) with
+ | (v0v', v1v') -> (v0v',v1v')
+ end in
+ (if bitU_to_bool setflags
+ then wPSTATE_NZCV ((),reset_vector_start nzcv)
+ else return ()) >>
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then wSP ((),reset_vector_start (set_vector_start_to_length result))
+ else wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_BitfieldMove (d, n, datasize, inzero, extend, R, S, wmask, tmask) =
+ (if bitU_to_bool inzero
+ then return (set_vector_start_to_length (Zeros datasize))
+ else
+ rX (datasize,d) >>= fun w__0 ->
+ return (set_vector_start_to_length w__0)) >>= fun dst ->
+ rX (datasize,n) >>= fun w__1 ->
+ let src = set_vector_start_to_length w__1 in
+ let bot =
+ set_vector_start_to_length
+ (bitwise_or
+ (set_vector_start_to_length
+ (bitwise_and
+ (set_vector_start_to_length dst,
+ set_vector_start_to_length
+ (NOT (reset_vector_start (set_vector_start_to_length wmask))))),
+ set_vector_start_to_length
+ (bitwise_and
+ (set_vector_start_to_length
+ (ROR (reset_vector_start (set_vector_start_to_length src),R)),
+ set_vector_start_to_length wmask)))) in
+ let top =
+ if bitU_to_bool extend
+ then
+ set_vector_start_to_length
+ (Replicate
+ (length bot,
+ reset_vector_start (set_vector_start_to_length
+ (Vector [access (set_vector_start_to_length src) S] 0 false))))
+ else set_vector_start_to_length dst in
+ wX
+ (d,
+ reset_vector_start (set_vector_start_to_length
+ (bitwise_or
+ (set_vector_start_to_length
+ (bitwise_and
+ (set_vector_start_to_length top,
+ set_vector_start_to_length
+ (NOT (reset_vector_start (set_vector_start_to_length tmask))))),
+ set_vector_start_to_length
+ (bitwise_and (set_vector_start_to_length bot, set_vector_start_to_length tmask))))))
+
+let execute_ExtractRegister (d, n, m, datasize, lsb) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let concat =
+ set_vector_start_to_length
+ ((set_vector_start_to_length operand1) ^^ (set_vector_start_to_length operand2)) in
+ let result =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length concat) ((lsb + datasize) - (1:ii)) lsb) in
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_LogicalImmediate (d, n, datasize, setflags, op, imm) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ let operand2 = set_vector_start_to_length imm in
+ let result =
+ match op with
+ | LogicalOp_AND ->
+ set_vector_start_to_length
+ (bitwise_and (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ | LogicalOp_ORR ->
+ set_vector_start_to_length
+ (bitwise_or (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ | LogicalOp_EOR ->
+ set_vector_start_to_length
+ (bitwise_xor (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ end in
+ (if bitU_to_bool setflags
+ then
+ wPSTATE_NZCV
+ ((),
+ reset_vector_start (set_vector_start 3
+ ((set_vector_start_to_length
+ (Vector [access (set_vector_start_to_length result) ((length
+ (reset_vector_start (set_vector_start_to_length
+ result))) - (1:ii))] 0 false)) ^^
+ (set_vector_start_to_length
+ ((set_vector_start_to_length
+ (Vector [IsZeroBit (reset_vector_start (set_vector_start_to_length result))] 0 false)) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false)))))))
+ else return ()) >>
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then wSP ((),reset_vector_start (set_vector_start_to_length result))
+ else wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_MoveWide (d, datasize, imm, pos, opcode) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ (if bitU_to_bool (eq (opcode, MoveWideOp_K))
+ then
+ rX (datasize,d) >>= fun w__0 ->
+ return (set_vector_start_to_length w__0)
+ else
+ let result = set_vector_start_to_length (Zeros datasize) in
+ return result) >>= fun result ->
+ let result = update result (pos + (15:ii)) pos (set_vector_start_to_length imm) in
+ let result =
+ if bitU_to_bool (eq (opcode, MoveWideOp_N))
+ then set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length result)))
+ else result in
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_Address (d, page, imm) =
+ rPC () >>= fun base ->
+ let base = if bitU_to_bool page then update base (11:ii) (0:ii) (Zeros (12:ii)) else base in
+ wX
+ (d,
+ reset_vector_start (set_vector_start_to_length
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length base))
+ (reset_vector_start (set_vector_start_to_length imm)))))
+
+let execute_AddSubExtendRegister (d, n, m, datasize, sub_op, setflags, extend_type, shift) =
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ rSP datasize >>= fun w__0 ->
+ return (set_vector_start_to_length w__0)
+ else
+ rX (datasize,n) >>= fun w__1 ->
+ return (set_vector_start_to_length w__1)) >>= fun operand1 ->
+ ExtendReg (datasize,m,extend_type,shift) >>= fun w__2 ->
+ let operand2 = set_vector_start_to_length w__2 in
+ let carry_in = B0 in
+ let (operand2, carry_in) =
+ if bitU_to_bool sub_op
+ then
+ let operand2 =
+ set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length operand2))) in
+ let carry_in = B1 in
+ (operand2,carry_in)
+ else
+ let carry_in = B0 in
+ (operand2,carry_in) in
+ let (result, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ carry_in)) with
+ | (v2v', v3v') -> (v2v',v3v')
+ end in
+ (if bitU_to_bool setflags
+ then wPSTATE_NZCV ((),reset_vector_start nzcv)
+ else return ()) >>
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then wSP ((),reset_vector_start (set_vector_start_to_length result))
+ else wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_AddSubShiftedRegister (d, n, m, datasize, sub_op, setflags, shift_type, shift_amount) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ ShiftReg (datasize,m,shift_type,shift_amount) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let carry_in = B0 in
+ let (operand2, carry_in) =
+ if bitU_to_bool sub_op
+ then
+ let operand2 =
+ set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length operand2))) in
+ let carry_in = B1 in
+ (operand2,carry_in)
+ else
+ let carry_in = B0 in
+ (operand2,carry_in) in
+ let (result, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ carry_in)) with
+ | (v4v', v5v') -> (v4v',v5v')
+ end in
+ (if bitU_to_bool setflags
+ then wPSTATE_NZCV ((),reset_vector_start nzcv)
+ else return ()) >>
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_AddSubCarry (d, n, m, datasize, sub_op, setflags) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let operand2 =
+ if bitU_to_bool sub_op
+ then set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length operand2)))
+ else operand2 in
+ read_reg_bitfield NZCV "C" >>= fun w__2 ->
+ let (result, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ w__2)) with
+ | (v6v', v7v') -> (v6v',v7v')
+ end in
+ (if bitU_to_bool setflags
+ then wPSTATE_NZCV ((),reset_vector_start nzcv)
+ else return ()) >>
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_ConditionalCompareImmediate (n, datasize, sub_op, condition, flags, imm) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ let operand2 = set_vector_start_to_length imm in
+ let carry_in = B0 in
+ let flags' = flags in
+ ConditionHolds (reset_vector_start condition) >>= fun w__1 ->
+ let (operand2, carry_in, flags') =
+ if bitU_to_bool w__1
+ then
+ let (operand2, carry_in) =
+ if bitU_to_bool sub_op
+ then
+ let operand2 =
+ set_vector_start_to_length
+ (NOT (reset_vector_start (set_vector_start_to_length operand2))) in
+ let carry_in = B1 in
+ (operand2,carry_in)
+ else (operand2,carry_in) in
+ let (_, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ carry_in)) with
+ | (v8v', v9v') -> (v8v',v9v')
+ end in
+ let flags' = nzcv in
+ (operand2,carry_in,flags')
+ else (operand2,carry_in,flags') in
+ wPSTATE_NZCV ((),reset_vector_start flags')
+
+let execute_ConditionalCompareRegister (n, m, datasize, sub_op, condition, flags) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let carry_in = B0 in
+ let flags' = flags in
+ ConditionHolds (reset_vector_start condition) >>= fun w__2 ->
+ let (operand2, carry_in, flags') =
+ if bitU_to_bool w__2
+ then
+ let (operand2, carry_in) =
+ if bitU_to_bool sub_op
+ then
+ let operand2 =
+ set_vector_start_to_length
+ (NOT (reset_vector_start (set_vector_start_to_length operand2))) in
+ let carry_in = B1 in
+ (operand2,carry_in)
+ else (operand2,carry_in) in
+ let (_, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ carry_in)) with
+ | (v10v', v11v') -> (v10v',v11v')
+ end in
+ let flags' = nzcv in
+ (operand2,carry_in,flags')
+ else (operand2,carry_in,flags') in
+ wPSTATE_NZCV ((),reset_vector_start flags')
+
+let execute_ConditionalSelect (d, n, m, datasize, condition, else_inv, else_inc) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ ConditionHolds (reset_vector_start condition) >>= fun w__2 ->
+ let result =
+ if bitU_to_bool w__2
+ then set_vector_start_to_length operand1
+ else
+ let result = set_vector_start_to_length operand2 in
+ let result =
+ if bitU_to_bool else_inv
+ then
+ set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length result)))
+ else result in
+ if bitU_to_bool else_inc
+ then
+ set_vector_start_to_length
+ (add_VIV (reset_vector_start (set_vector_start_to_length result)) (1:ii))
+ else result in
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_Reverse (d, n, datasize, op) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let V = to_vec_dec ((6:ii),(0:ii)) in
+ let V =
+ match op with
+ | RevOp_REV16 -> Vector [B0;B0;B1;B0;B0;B0] 5 false
+ | RevOp_REV32 -> Vector [B0;B1;B1;B0;B0;B0] 5 false
+ | RevOp_REV64 -> Vector [B1;B1;B1;B0;B0;B0] 5 false
+ | RevOp_RBIT ->
+ if bitU_to_bool (eq_range (datasize, (64:ii)))
+ then Vector [B1;B1;B1;B1;B1;B1] 5 false
+ else Vector [B0;B1;B1;B1;B1;B1] 5 false
+ end in
+ rX (datasize,n) >>= fun w__0 ->
+ let result = set_vector_start_to_length w__0 in
+ let result =
+ (foreach_inc ((0:ii),(5:ii),(1:ii)) result
+ (fun vbit result ->
+ if bitU_to_bool (eq (match (access V vbit) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then
+ let tmp = set_vector_start_to_length result in
+ let vsize = lsl' ((1:ii),vbit) in
+ (foreach_inc ((0:ii),datasize - (1:ii),(2:ii) * vsize) result
+ (fun base result ->
+ let result =
+ update
+ result ((base + vsize) - (1:ii)) base
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length tmp)
+ ((base + ((2:ii) * vsize)) - (1:ii)) (base + vsize))) in
+ update
+ result ((base + ((2:ii) * vsize)) - (1:ii)) (base + vsize)
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length tmp) ((base + vsize) - (1:ii)) base))))
+ else result)) in
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_CountLeading (d, n, datasize, opcode) =
+ let result = (0:ii) in
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ let result =
+ if bitU_to_bool (eq (opcode, CountOp_CLZ))
+ then CountLeadingZeroBits (reset_vector_start (set_vector_start_to_length operand1))
+ else CountLeadingSignBits (reset_vector_start (set_vector_start_to_length operand1)) in
+ wX (d,reset_vector_start (set_vector_start_to_length (to_vec_dec (datasize,result))))
+
+let execute_Division (d, n, m, datasize, _unsigned) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let result = (0:ii) in
+ let result =
+ if bitU_to_bool (IsZero (reset_vector_start (set_vector_start_to_length operand2)))
+ then (0:ii)
+ else
+ quot
+ (Int (reset_vector_start (set_vector_start_to_length operand1),_unsigned))
+ (Int (reset_vector_start (set_vector_start_to_length operand2),_unsigned)) in
+ wX (d,reset_vector_start (set_vector_start_to_length (to_vec_dec (datasize,result))))
+
+let execute_Shift (d, n, m, datasize, shift_type) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ rX (datasize,m) >>= fun w__0 ->
+ let operand2 = set_vector_start_to_length w__0 in
+ ShiftReg
+ (datasize,
+ n,
+ shift_type,
+ modulo (UInt (reset_vector_start (set_vector_start_to_length operand2))) datasize) >>= fun w__1 ->
+ let result = set_vector_start_to_length w__1 in
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_CRC (d, n, m, size, crc32c) =
+ (if bitU_to_bool (~(HaveCRCExt ()))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ rX ((32:ii),n) >>= fun acc ->
+ rX (size,m) >>= fun w__0 ->
+ let _val = set_vector_start_to_length w__0 in
+ let poly =
+ if bitU_to_bool crc32c
+ then
+ Vector [B0;B0;B0;B1;B1;B1;B1;B0;B1;B1;B0;B1;B1;B1;B0;B0;B0;B1;B1;B0;B1;
+ B1;B1;B1;B0;B1;B0;B0;B0;B0;B0;B1] 31 false
+ else
+ Vector [B0;B0;B0;B0;B0;B1;B0;B0;B1;B1;B0;B0;B0;B0;B0;B1;B0;B0;B0;B1;B1;
+ B1;B0;B1;B1;B0;B1;B1;B0;B1;B1;B1] 31 false in
+ let tempacc =
+ set_vector_start_to_length
+ ((set_vector_start_to_length
+ (BitReverse (reset_vector_start (set_vector_start_to_length acc)))) ^^
+ (set_vector_start_to_length (set_vector_start_to_length (Zeros (length _val))))) in
+ let tempval =
+ set_vector_start_to_length
+ ((set_vector_start_to_length
+ (BitReverse (reset_vector_start (set_vector_start_to_length _val)))) ^^
+ (Zeros (32:ii))) in
+ wX
+ (d,
+ reset_vector_start (set_vector_start_to_length
+ (BitReverse
+ (reset_vector_start (set_vector_start_to_length
+ (Poly32Mod2
+ (reset_vector_start (set_vector_start_to_length
+ (bitwise_xor
+ (set_vector_start_to_length tempacc,
+ set_vector_start_to_length tempval))),
+ reset_vector_start poly)))))))
+
+let execute_MultiplyAddSub (d, n, m, a, destsize, datasize, sub_op) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ rX (destsize,a) >>= fun w__2 ->
+ let operand3 = set_vector_start_to_length w__2 in
+ let result = (0:ii) in
+ let result =
+ if bitU_to_bool sub_op
+ then
+ (UInt (reset_vector_start (set_vector_start_to_length operand3))) -
+ ((UInt (reset_vector_start (set_vector_start_to_length operand1))) *
+ (UInt (reset_vector_start (set_vector_start_to_length operand2))))
+ else
+ (UInt (reset_vector_start (set_vector_start_to_length operand3))) +
+ ((UInt (reset_vector_start (set_vector_start_to_length operand1))) *
+ (UInt (reset_vector_start (set_vector_start_to_length operand2)))) in
+ wX (d,reset_vector_start (set_vector_start_to_length (to_vec_dec (destsize,result))))
+
+let execute_MultiplyAddSubLong (d, n, m, a, destsize, datasize, sub_op, _unsigned) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ rX (destsize,a) >>= fun w__2 ->
+ let operand3 = set_vector_start_to_length w__2 in
+ let result = (0:ii) in
+ let result =
+ if bitU_to_bool sub_op
+ then
+ (Int (reset_vector_start (set_vector_start_to_length operand3),_unsigned)) -
+ ((Int (reset_vector_start (set_vector_start_to_length operand1),_unsigned)) *
+ (Int (reset_vector_start (set_vector_start_to_length operand2),_unsigned)))
+ else
+ (Int (reset_vector_start (set_vector_start_to_length operand3),_unsigned)) +
+ ((Int (reset_vector_start (set_vector_start_to_length operand1),_unsigned)) *
+ (Int (reset_vector_start (set_vector_start_to_length operand2),_unsigned))) in
+ wX (d,reset_vector_start (set_vector_start_to_length (to_vec_dec ((64:ii),result))))
+
+let execute_MultiplyHigh (d, n, m, a, destsize, datasize, _unsigned) =
+ rX (destsize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (destsize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let result = (0:ii) in
+ let result =
+ (Int (reset_vector_start (set_vector_start_to_length operand1),_unsigned)) *
+ (Int (reset_vector_start (set_vector_start_to_length operand2),_unsigned)) in
+ wX
+ (d,
+ reset_vector_start (set_vector_start_to_length
+ (slice (to_vec_dec ((128:ii),result)) (127:ii) (64:ii))))
+
+let execute_LogicalShiftedRegister (d, n, m, datasize, setflags, op, shift_type, shift_amount, invert) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ ShiftReg (datasize,m,shift_type,shift_amount) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let operand2 =
+ if bitU_to_bool invert
+ then set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length operand2)))
+ else operand2 in
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let result =
+ match op with
+ | LogicalOp_AND ->
+ set_vector_start_to_length
+ (bitwise_and (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ | LogicalOp_ORR ->
+ set_vector_start_to_length
+ (bitwise_or (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ | LogicalOp_EOR ->
+ set_vector_start_to_length
+ (bitwise_xor (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ end in
+ (if bitU_to_bool setflags
+ then
+ wPSTATE_NZCV
+ ((),
+ reset_vector_start (set_vector_start 3
+ ((set_vector_start_to_length
+ (Vector [access (set_vector_start_to_length result) (datasize - (1:ii))] 0 false)) ^^
+ (set_vector_start_to_length
+ ((set_vector_start_to_length
+ (Vector [IsZeroBit (reset_vector_start (set_vector_start_to_length result))] 0 false)) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false)))))))
+ else return ()) >>
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute = function
+
+ | TMStart (t) -> execute_TMStart (t)
+ | TMCommit -> execute_TMCommit ()
+ | TMTest -> execute_TMTest ()
+ | TMAbort (retry,reason) -> execute_TMAbort (retry,reason)
+ | CompareAndBranch (t,datasize,iszero,offset) -> execute_CompareAndBranch (t,datasize,iszero,offset)
+ | BranchConditional (offset,condition) -> execute_BranchConditional (offset,condition)
+ | GenerateExceptionEL1 (imm) -> execute_GenerateExceptionEL1 (imm)
+ | GenerateExceptionEL2 (imm) -> execute_GenerateExceptionEL2 (imm)
+ | GenerateExceptionEL3 (imm) -> execute_GenerateExceptionEL3 (imm)
+ | DebugBreakpoint (comment) -> execute_DebugBreakpoint (comment)
+ | ExternalDebugBreakpoint -> execute_ExternalDebugBreakpoint ()
+ | DebugSwitchToExceptionLevel (target_level) -> execute_DebugSwitchToExceptionLevel (target_level)
+ | MoveSystemImmediate (operand,field') -> execute_MoveSystemImmediate (operand,field')
+ | Hint (op) -> execute_Hint (op)
+ | ClearExclusiveMonitor (imm) -> execute_ClearExclusiveMonitor (imm)
+ | Barrier (op,domain,types) -> execute_Barrier (op,domain,types)
+ | System (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result) -> execute_System (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result)
+ | MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read) -> execute_MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read)
+ | ImplementationDefinedTestBeginEnd (isEnd) -> execute_ImplementationDefinedTestBeginEnd (isEnd)
+ | ImplementationDefinedStopFetching -> execute_ImplementationDefinedStopFetching ()
+ | ImplementationDefinedThreadStart -> execute_ImplementationDefinedThreadStart ()
+ | TestBitAndBranch (t,datasize,bit_pos,bit_val,offset) -> execute_TestBitAndBranch (t,datasize,bit_pos,bit_val,offset)
+ | BranchImmediate (branch_type,offset) -> execute_BranchImmediate (branch_type,offset)
+ | BranchRegister (n,branch_type) -> execute_BranchRegister (n,branch_type)
+ | ExceptionReturn -> execute_ExceptionReturn ()
+ | DebugRestorePState -> execute_DebugRestorePState ()
+ | LoadLiteral (t,memop,_signed,size,offset,datasize) -> execute_LoadLiteral (t,memop,_signed,size,offset,datasize)
+ | LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize) -> execute_LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize)
+ | LoadStorePairNonTemp (wback,postindex,n,t,t2,acctype,memop,scale,datasize,offset) -> execute_LoadStorePairNonTemp (wback,postindex,n,t,t2,acctype,memop,scale,datasize,offset)
+ | LoadImmediate (n,t,acctype,memop,_signed,wback,postindex,offset,regsize,datasize) -> execute_LoadImmediate (n,t,acctype,memop,_signed,wback,postindex,offset,regsize,datasize)
+ | LoadRegister (n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize) -> execute_LoadRegister (n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize)
+ | LoadStorePair (wback,postindex,n,t,t2,acctype,memop,_signed,datasize,offset) -> execute_LoadStorePair (wback,postindex,n,t,t2,acctype,memop,_signed,datasize,offset)
+ | AddSubImmediate (d,n,datasize,sub_op,setflags,imm) -> execute_AddSubImmediate (d,n,datasize,sub_op,setflags,imm)
+ | BitfieldMove (d,n,datasize,inzero,extend,R,S,wmask,tmask) -> execute_BitfieldMove (d,n,datasize,inzero,extend,R,S,wmask,tmask)
+ | ExtractRegister (d,n,m,datasize,lsb) -> execute_ExtractRegister (d,n,m,datasize,lsb)
+ | LogicalImmediate (d,n,datasize,setflags,op,imm) -> execute_LogicalImmediate (d,n,datasize,setflags,op,imm)
+ | MoveWide (d,datasize,imm,pos,opcode) -> execute_MoveWide (d,datasize,imm,pos,opcode)
+ | Address (d,page,imm) -> execute_Address (d,page,imm)
+ | AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift) -> execute_AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift)
+ | AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount) -> execute_AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount)
+ | AddSubCarry (d,n,m,datasize,sub_op,setflags) -> execute_AddSubCarry (d,n,m,datasize,sub_op,setflags)
+ | ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm) -> execute_ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm)
+ | ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags) -> execute_ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags)
+ | ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc) -> execute_ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc)
+ | Reverse (d,n,datasize,op) -> execute_Reverse (d,n,datasize,op)
+ | CountLeading (d,n,datasize,opcode) -> execute_CountLeading (d,n,datasize,opcode)
+ | Division (d,n,m,datasize,_unsigned) -> execute_Division (d,n,m,datasize,_unsigned)
+ | Shift (d,n,m,datasize,shift_type) -> execute_Shift (d,n,m,datasize,shift_type)
+ | CRC (d,n,m,size,crc32c) -> execute_CRC (d,n,m,size,crc32c)
+ | MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op) -> execute_MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op)
+ | MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,_unsigned) -> execute_MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,_unsigned)
+ | MultiplyHigh (d,n,m,a,destsize,datasize,_unsigned) -> execute_MultiplyHigh (d,n,m,a,destsize,datasize,_unsigned)
+ | LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert) -> execute_LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert)
+ end
+
diff --git a/aarch64_small/armV8_embed_sequential.lem b/aarch64_small/armV8_embed_sequential.lem
new file mode 100644
index 00000000..21841fe1
--- /dev/null
+++ b/aarch64_small/armV8_embed_sequential.lem
@@ -0,0 +1,5561 @@
+(*Generated by Sail from armV8.sail.*)
+open import Pervasives_extra
+open import Sail_impl_base
+open import State
+open import Sail_values
+open import ArmV8_embed_types
+open import ArmV8_extras_embed_sequential
+let lsl' (n, m) = n * (pow (2:ii) m)
+
+let not_implemented message = exit message
+
+let not_implemented_extern message = exit message
+
+let info message = ()
+
+let UNKNOWN = (0:ii)
+
+let M32_User = Vector [B1;B0;B0;B0;B0] 4 false
+
+let M32_FIQ = Vector [B1;B0;B0;B0;B1] 4 false
+
+let M32_IRQ = Vector [B1;B0;B0;B1;B0] 4 false
+
+let M32_Svc = Vector [B1;B0;B0;B1;B1] 4 false
+
+let M32_Monitor = Vector [B1;B0;B1;B1;B0] 4 false
+
+let M32_Abort = Vector [B1;B0;B1;B1;B1] 4 false
+
+let M32_Hyp = Vector [B1;B1;B0;B1;B0] 4 false
+
+let M32_Undef = Vector [B1;B1;B0;B1;B1] 4 false
+
+let M32_System = Vector [B1;B1;B1;B1;B1] 4 false
+
+let EL3 = Vector [B1;B1] 1 false
+
+let EL2 = Vector [B1;B0] 1 false
+
+let EL1 = Vector [B0;B1] 1 false
+
+let EL0 = Vector [B0;B0] 1 false
+
+let DebugHalt_Breakpoint = Vector [B0;B0;B0;B1;B1;B1] 5 false
+
+let DebugHalt_EDBGRQ = Vector [B0;B1;B0;B0;B1;B1] 5 false
+
+let DebugHalt_Step_Normal = Vector [B0;B1;B1;B0;B1;B1] 5 false
+
+let DebugHalt_Step_Exclusive = Vector [B0;B1;B1;B1;B1;B1] 5 false
+
+let DebugHalt_OSUnlockCatch = Vector [B1;B0;B0;B0;B1;B1] 5 false
+
+let DebugHalt_ResetCatch = Vector [B1;B0;B0;B1;B1;B1] 5 false
+
+let DebugHalt_Watchpoint = Vector [B1;B0;B1;B0;B1;B1] 5 false
+
+let DebugHalt_HaltInstruction = Vector [B1;B0;B1;B1;B1;B1] 5 false
+
+let DebugHalt_SoftwareAccess = Vector [B1;B1;B0;B0;B1;B1] 5 false
+
+let DebugHalt_ExceptionCatch = Vector [B1;B1;B0;B1;B1;B1] 5 false
+
+let DebugHalt_Step_NoSyndrome = Vector [B1;B1;B1;B0;B1;B1] 5 false
+
+let HighestSetBit x =
+ let N = length (reset_vector_start (set_vector_start_to_length x)) in
+ let result = (0:ii) in
+ let break = B0 in
+ let (break, result) =
+ (foreach_dec (N - (1:ii),(0:ii),(1:ii)) (break,result)
+ (fun i (break,result) ->
+ let (result, break) =
+ if bitU_to_bool
+ ((~break) &.
+ (eq
+ (match (access (set_vector_start_to_length x) i) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (1:ii))))
+ then
+ let result = i in
+ let break = B1 in
+ (result,break)
+ else (result,break) in
+ (break,result))) in
+ if bitU_to_bool break
+ then Just result
+ else Nothing
+
+let IsZero x = eq_vec_range (set_vector_start_to_length x, (0:ii))
+
+let NOT x =
+ set_vector_start_to_length (bitwise_not (reset_vector_start (set_vector_start_to_length x)))
+
+let NOT' x = ~x
+
+let SInt x = signed (reset_vector_start (set_vector_start_to_length x))
+
+let UInt x = unsigned (reset_vector_start (set_vector_start_to_length x))
+
+let Zeros N' = set_vector_start_to_length (to_vec_dec (N',(0:ii)))
+
+let BitReverse data =
+ let N = length (reset_vector_start (set_vector_start_to_length data)) in
+ let result = set_vector_start_to_length (to_vec_dec (length data,(0:ii))) in
+ (foreach_inc ((0:ii),N - (1:ii),(1:ii)) result
+ (fun i result ->
+ update_pos result ((N - i) - (1:ii)) (access (set_vector_start_to_length data) i)))
+
+let ELUsingAArch32 el = B0
+
+let Hint_Yield () = ()
+
+let SendEvent () = ()
+
+let Unreachable () = assert' B0 (Just "Unreachable reached")
+
+let UsingAArch32 () = B0
+
+let _Rs =
+ Vector ["R30";"R29";"R28";"R27";"R26";"R25";"R24";"R23";"R22";"R21";"R20";"R19";"R18";"R17";"R16";"R15";"R14";"R13";"R12";"R11";"R10";
+ "R9";"R8";"R7";"R6";"R5";"R4";"R3";"R2";"R1";"R0"] 30 false
+
+let IMPLEMENTATION_DEFINED =
+ <| IMPLEMENTATION_DEFINED_type_HaveCRCExt = B1;
+ IMPLEMENTATION_DEFINED_type_HaveAArch32EL = B0;
+ IMPLEMENTATION_DEFINED_type_HaveAnyAArch32 = B0;
+ IMPLEMENTATION_DEFINED_type_HaveEL2 = B0;
+ IMPLEMENTATION_DEFINED_type_HaveEL3 = B0;
+ IMPLEMENTATION_DEFINED_type_HighestELUsingAArch32 = B0;
+ IMPLEMENTATION_DEFINED_type_IsSecureBelowEL3 = B0 |>
+
+let AArch64_ResetControlRegisters cold_reset = ()
+
+let DCPSInstruction target_el = not_implemented "DCPSInstruction"
+
+let DRPSInstruction () = not_implemented "DRPSInstruction"
+
+let Halt reason = not_implemented "Halt"
+
+let Align' (x, y) = y * (quot x y)
+
+let CountLeadingZeroBits x =
+ match (HighestSetBit (reset_vector_start (set_vector_start_to_length x))) with
+ | Nothing -> length (reset_vector_start (set_vector_start_to_length x))
+ | Just (n) -> ((length (reset_vector_start (set_vector_start_to_length x))) - (1:ii)) - n
+ end
+
+let IsZeroBit x =
+ if bitU_to_bool (IsZero (reset_vector_start (set_vector_start_to_length x)))
+ then B1
+ else B0
+
+let LSL_C (x, shift) =
+ let extended_x =
+ set_vector_start_to_length
+ ((set_vector_start_to_length x) ^^
+ (set_vector_start_to_length (set_vector_start_to_length (Zeros shift)))) in
+ let result =
+ set_vector_start_to_length
+ (set_vector_start_to_length
+ (mask (length x,reset_vector_start (set_vector_start_to_length extended_x)))) in
+ let carry_out =
+ access (set_vector_start_to_length extended_x) (length
+ (reset_vector_start (set_vector_start_to_length
+ x))) in
+ (set_vector_start_to_length result,carry_out)
+
+let Min (a, b) = if bitU_to_bool (lteq (a, b)) then a else b
+
+let uMin (a, b) = if bitU_to_bool (lteq (a, b)) then a else b
+
+let Replicate (N', x) =
+ let (N, M) =
+ (length (reset_vector_start (set_vector_start_to_length (to_vec_dec (N',(0:ii))))),length
+ (reset_vector_start (set_vector_start_to_length
+ (to_vec_dec
+ (length
+ x,
+ (0:ii)))))) in
+ let _ = assert' (eq_range (modulo N M, (0:ii))) (Nothing) in
+ let result = set_vector_start_to_length (to_vec_dec (N',(0:ii))) in
+ let zeros = set_vector_start_to_length (Zeros ((length result) - (length x))) in
+ (foreach_inc (M,N,M) result
+ (fun i result ->
+ set_vector_start_to_length
+ (bitwise_or
+ (set_vector_start_to_length (bitwise_leftshift (set_vector_start_to_length result, M)),
+ set_vector_start_to_length
+ ((set_vector_start_to_length zeros) ^^ (set_vector_start_to_length x))))))
+
+let ZeroExtend (N', x) =
+ set_vector_start_to_length
+ ((set_vector_start_to_length
+ (set_vector_start_to_length (Zeros (N' + ((length x) * ((0-1):ii)))))) ^^
+ (set_vector_start_to_length x))
+
+let Poly32Mod2 (data, poly) =
+ let result = set_vector_start_to_length data in
+ let N = length (reset_vector_start (set_vector_start_to_length data)) in
+ let _ = assert' (gt (N, (32:ii))) (Nothing) in
+ let data' = set_vector_start_to_length data in
+ let zeros = set_vector_start_to_length (Zeros ((length data) - (32:ii))) in
+ let data' =
+ (foreach_dec (N - (1:ii),(32:ii),(1:ii)) data'
+ (fun i data' ->
+ if bitU_to_bool
+ (eq
+ (match (access (set_vector_start_to_length data') i) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (1:ii)))
+ then
+ update
+ data' (i - (1:ii)) (0:ii)
+ (set_vector_start_to_length
+ (bitwise_xor
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length data') (i - (1:ii)) (0:ii)),
+ set_vector_start_to_length
+ ((set_vector_start_to_length poly) ^^
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length zeros) (i - (33:ii)) (0:ii)))))))
+ else data')) in
+ slice (set_vector_start_to_length data') (31:ii) (0:ii)
+
+let ClearExclusiveLocal processorid =
+ info "The model does not implement the exclusive monitors explicitly."
+
+let ProcessorID () = (0:ii)
+
+let rec BigEndianReverse value =
+ let width = length (reset_vector_start (set_vector_start_to_length value)) in
+ let half = quot width (2:ii) in
+ if bitU_to_bool (eq_range (width, (8:ii)))
+ then set_vector_start_to_length value
+ else
+ set_vector_start_to_length
+ ((set_vector_start_to_length
+ (BigEndianReverse
+ (reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length value) (half - (1:ii)) (0:ii)))))) ^^
+ (set_vector_start_to_length
+ (BigEndianReverse
+ (reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length value) (width - (1:ii)) half))))))
+
+let ClearEventRegister () = not_implemented_extern "ClearEventRegister"
+
+let EventRegisterSet () = not_implemented_extern "EventRegisterSet"
+
+let EventRegistered () = not_implemented_extern "EventRegistered"
+
+let InterruptPending () = not_implemented_extern "InterruptPending"
+
+let WaitForEvent () = not_implemented_extern "WaitForEvent"
+
+let WaitForInterrupt () = not_implemented_extern "WaitForInterrupt"
+
+let AArch64_SPAlignmentFault () = not_implemented "AArch64_SPAlignmentFault"
+
+let AArch64_SoftwareBreakpoint immediate = not_implemented "AArch64_SoftwareBreakpoint"
+
+let AArch64_CallHypervisor immediate = not_implemented "AArch64_CallHypervisor"
+
+let AArch64_CallSecureMonitor immediate = not_implemented "AArch64_CallSecureMonitor"
+
+let AArch64_CallSupervisor immediate = not_implemented "AArch64_CallSupervisor"
+
+let AArch64_SystemRegisterTrap (target_el, op0, op2, op1, crn, rt, crm, dir) =
+ not_implemented "AArch64_SystemRegisterTrap"
+
+let AArch64_UndefinedFault () = not_implemented "AArch64_UndefinedFault"
+
+let rPC () = read_reg _PC
+
+let AArch64_ExceptionReturn (new_pc, spsr) = not_implemented "AArch64_ExceptionReturn"
+
+let UInt_reg x = unsigned x
+
+let signalDBGEN () = not_implemented_extern "signalDBGEN"
+
+let signelNIDEN () = not_implemented_extern "signalNIDEN"
+
+let signalSPIDEN () = not_implemented_extern "signalSPIDEN"
+
+let signalDPNIDEN () = not_implemented_extern "signalSPNIDEN"
+
+let Halted () =
+ read_reg_field EDSCR "STATUS" >>= fun w__0 ->
+ read_reg_field EDSCR "STATUS" >>= fun w__1 ->
+ return (~((eq_vec
+ (set_vector_start_to_length w__0,
+ set_vector_start_to_length (Vector [B0;B0;B0;B0;B0;B1] 5 false))) |.
+ (eq_vec
+ (set_vector_start_to_length w__1,
+ set_vector_start_to_length (Vector [B0;B0;B0;B0;B1;B0] 5 false)))))
+
+let HaveCRCExt () = IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HaveCRCExt
+
+let ExclusiveMonitorsStatus () =
+ let _ = info "The model does not implement the exclusive monitors explicitly." in
+ not_implemented "ExclusiveMonitorsStatus should not be called" >>
+ return B0
+
+let Hint_Branch hint =
+ info "This hint can be used for hardware optimization that has no effect on the model."
+
+let ResetExternalDebugRegisters b = not_implemented_extern "ResetExternalDebugRegisters"
+
+let HaveAnyAArch32 () = IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HaveAnyAArch32
+
+let AArch64_WFxTrap (target_el, is_wfe) = not_implemented "AArch64_WFxTrap"
+
+let AArch64_CheckUnallocatedSystemAccess (op0, op1, crn, crm, op2, read) =
+ match (op0,op1,crn,crm,op2,read) with
+ | (Vector [B0;B0] _ _, Vector [B0;B0;B0] _ _, Vector [B0;B1;B0;B0] _ _, _, Vector [B1;B0;B1] _ _, _) ->
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ return (lt_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL1))
+ | (Vector [B0;B0] _ _, Vector [B0;B1;B1] _ _, Vector [B0;B1;B0;B0] _ _, _, Vector [B1;B1;B0] _ _, _) ->
+ return B0
+ | (Vector [B0;B0] _ _, Vector [B0;B1;B1] _ _, Vector [B0;B1;B0;B0] _ _, _, Vector [B1;B1;B1] _ _, _) ->
+ return B0
+ | (Vector [B1;B1] _ _, Vector [B0;B1;B1] _ _, Vector [B0;B1;B0;B0] _ _, Vector [B0;B0;B1;B0] _ _, Vector [B0;B0;B0] _ _, _) ->
+ return B0
+ | (Vector [B1;B1] _ _, Vector [B0;B1;B1] _ _, Vector [B0;B1;B0;B0] _ _, Vector [B0;B0;B1;B0] _ _, Vector [B0;B0;B1] _ _, _) ->
+ return B0
+ end
+
+let SysOp_R (op0, op1, crn, crm, op2) =
+ not_implemented "SysOp_R" >>
+ return (to_vec_dec ((64:ii),(0:ii)))
+
+let SysOp_W (op0, op1, crn, crm, op2, _val) = not_implemented "SysOp_W"
+
+let TxNestingLevelfp = RFull "TxNestingLevel"
+
+let TXIDR_EL0_DEPTHfp = RField ("TXIDR_EL0","DEPTH")
+
+let PSTATE_Nfp = RField ("NZCV","N")
+
+let PSTATE_Zfp = RField ("NZCV","Z")
+
+let PSTATE_Cfp = RField ("NZCV","C")
+
+let PSTATE_Vfp = RField ("NZCV","V")
+
+let PSTATE_Dfp = RField ("DAIF","D")
+
+let PSTATE_Afp = RField ("DAIF","A")
+
+let PSTATE_Ifp = RField ("DAIF","I")
+
+let PSTATE_Ffp = RField ("DAIF","F")
+
+let PSTATE_ELfp = RFull "CurrentEL"
+
+let PSTATE_SPfp = RField ("SPSel","SP")
+
+let _PCfp = RFull "_PC"
+
+let Hint_Prefetch (addr, hint, target, stream) = ()
+
+let AArch64_IsExclusiveVA (address, processorid, size) =
+ let _ = info "The model does not implement the exclusive monitors explicitly." in
+ B1
+
+let AArch64_MarkExclusiveVA (address, processorid, size) =
+ info "The model does not implement the exclusive monitors explicitly."
+
+let wPSTATE_NZCV ((), Vector [n;z;c;v] _ _) =
+ write_reg_bitfield NZCV "N" n >>
+ write_reg_bitfield NZCV "Z" z >>
+ write_reg_bitfield NZCV "C" c >>
+ write_reg_bitfield NZCV "V" v
+
+let wPSTATE_DAIF ((), Vector [d;a;i;f] _ _) =
+ write_reg_bitfield DAIF "D" d >>
+ write_reg_bitfield DAIF "A" a >>
+ write_reg_bitfield DAIF "I" i >>
+ write_reg_bitfield DAIF "F" f
+
+let Int (x, unsigned) =
+ if bitU_to_bool unsigned
+ then UInt (reset_vector_start (set_vector_start_to_length x))
+ else SInt (reset_vector_start (set_vector_start_to_length x))
+
+let ClearExclusiveByAddress (paddress, processorid, size) =
+ info "The model does not implement the exclusive monitors explicitly."
+
+let IsExclusiveGlobal (paddress, processorid, size) =
+ let _ = info "The model does not implement the exclusive monitors explicitly." in
+ B1
+
+let IsExclusiveLocal (paddress, processorid, size) =
+ let _ = info "The model does not implement the exclusive monitors explicitly." in
+ B1
+
+let MarkExclusiveGlobal (paddress, processorid, size) =
+ info "The model does not implement the exclusive monitors explicitly."
+
+let MarkExclusiveLocal (paddress, processorid, size) =
+ info "The model does not implement the exclusive monitors explicitly."
+
+let PAMax () =
+ let pa_size = (0:ii) in
+ read_reg_field ID_AA64MMFR0_EL1 "PARange" >>= fun w__0 ->
+ let pa_size =
+ match w__0 with
+ | Vector [B0;B0;B0;B0] _ _ -> (32:ii)
+ | Vector [B0;B0;B0;B1] _ _ -> (36:ii)
+ | Vector [B0;B0;B1;B0] _ _ -> (40:ii)
+ | Vector [B0;B0;B1;B1] _ _ -> (42:ii)
+ | Vector [B0;B1;B0;B0] _ _ -> (44:ii)
+ | Vector [B0;B1;B0;B1] _ _ -> (48:ii)
+ | _ -> pa_size
+ end in
+ return pa_size
+
+let AddWithCarry (x, y, carry_in) =
+ let unsigned_sum =
+ ((UInt (reset_vector_start (set_vector_start_to_length x))) +
+ (UInt (reset_vector_start (set_vector_start_to_length y)))) +
+ (UInt (reset_vector_start (set_vector_start_to_length (Vector [carry_in] 0 false)))) in
+ let signed_sum =
+ ((SInt (reset_vector_start (set_vector_start_to_length x))) +
+ (SInt (reset_vector_start (set_vector_start_to_length y)))) +
+ (UInt (reset_vector_start (set_vector_start_to_length (Vector [carry_in] 0 false)))) in
+ let result = set_vector_start_to_length (to_vec_dec (length x,unsigned_sum)) in
+ let n =
+ access (set_vector_start_to_length result) ((length
+ (reset_vector_start (set_vector_start_to_length
+ result))) - (1:ii)) in
+ let z =
+ if bitU_to_bool (IsZero (reset_vector_start (set_vector_start_to_length result)))
+ then B1
+ else B0 in
+ let c =
+ if bitU_to_bool
+ (eq_range (UInt (reset_vector_start (set_vector_start_to_length result)), unsigned_sum))
+ then B0
+ else B1 in
+ let v =
+ if bitU_to_bool
+ (eq_range (SInt (reset_vector_start (set_vector_start_to_length result)), signed_sum))
+ then B0
+ else B1 in
+ (set_vector_start_to_length result,set_vector_start 3
+ ((set_vector_start_to_length (Vector [n] 0 false)) ^^
+ (set_vector_start_to_length
+ ((set_vector_start_to_length (Vector [z] 0 false)) ^^
+ (set_vector_start_to_length
+ ((set_vector_start_to_length (Vector [c] 0 false)) ^^
+ (set_vector_start_to_length (Vector [v] 0 false))))))))
+
+let ConditionHolds _cond =
+ let result = B0 in
+ match (slice _cond (3:ii) (1:ii)) with
+ | Vector [B0;B0;B0] _ _ ->
+ read_reg_bitfield NZCV "Z" >>= fun w__0 ->
+ let result = eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return result
+ | Vector [B0;B0;B1] _ _ ->
+ read_reg_bitfield NZCV "C" >>= fun w__1 ->
+ let result = eq (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return result
+ | Vector [B0;B1;B0] _ _ ->
+ read_reg_bitfield NZCV "N" >>= fun w__2 ->
+ let result = eq (match w__2 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return result
+ | Vector [B0;B1;B1] _ _ ->
+ read_reg_bitfield NZCV "V" >>= fun w__3 ->
+ let result = eq (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return result
+ | Vector [B1;B0;B0] _ _ ->
+ read_reg_bitfield NZCV "C" >>= fun w__4 ->
+ read_reg_bitfield NZCV "Z" >>= fun w__5 ->
+ let result =
+ (eq (match w__4 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ (eq (match w__5 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) in
+ return result
+ | Vector [B1;B0;B1] _ _ ->
+ read_reg_bitfield NZCV "N" >>= fun w__6 ->
+ read_reg_bitfield NZCV "V" >>= fun w__7 ->
+ let result = eq_bit (w__6, w__7) in
+ return result
+ | Vector [B1;B1;B0] _ _ ->
+ read_reg_bitfield NZCV "N" >>= fun w__8 ->
+ read_reg_bitfield NZCV "V" >>= fun w__9 ->
+ read_reg_bitfield NZCV "Z" >>= fun w__10 ->
+ let result =
+ (eq_bit (w__8, w__9)) &. (eq (match w__10 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) in
+ return result
+ | Vector [B1;B1;B1] _ _ -> return B1
+ end >>= fun result ->
+ let result =
+ if bitU_to_bool
+ ((eq (match (access _cond (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ (neq_vec
+ (set_vector_start_to_length _cond,
+ set_vector_start_to_length (Vector [B1;B1;B1;B1] 3 false))))
+ then ~result
+ else result in
+ return result
+
+let DecodeShift op =
+ match toNatural (unsigned (reset_vector_start op)) with
+ | (0:nn) -> ShiftType_LSL
+ | (1:nn) -> ShiftType_LSR
+ | (2:nn) -> ShiftType_ASR
+ | (3:nn) -> ShiftType_ROR
+ end
+
+let HaveEL el =
+ if bitU_to_bool
+ ((eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL1)) |.
+ (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL0)))
+ then B1
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL2))
+ then IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HaveEL2
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL3))
+ then IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HaveEL3
+ else
+ let _ = assert' B0 (Nothing) in
+ B0
+
+let System_Put (op0, op1, crn, crm, op2, _val) =
+ match toNaturalFiveTup (op0,op1,crn,crm,op2) with
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (0:nn)) -> write_reg NZCV (slice _val (31:ii) (0:ii))
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (1:nn)) -> write_reg DAIF (slice _val (31:ii) (0:ii))
+ | ((3:nn), (3:nn), (13:nn), (0:nn), (2:nn)) -> write_reg TPIDR_EL0 (slice _val (63:ii) (0:ii))
+ end
+
+let DataSynchronizationBarrier (domain, types) =
+ (if bitU_to_bool (neq (domain, MBReqDomain_FullSystem))
+ then not_implemented "DataSynchronizationBarrier: not MBReqDomain_FullSystem"
+ else return ()) >>
+ match types with
+ | MBReqTypes_Reads -> DataSynchronizationBarrier_Reads ()
+ | MBReqTypes_Writes -> DataSynchronizationBarrier_Writes ()
+ | MBReqTypes_All -> DataSynchronizationBarrier_All ()
+ end
+
+let rELR el =
+ let r = to_vec_dec ((64:ii),(0:ii)) in
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL1))
+ then read_reg ELR_EL1
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL2))
+ then read_reg ELR_EL2
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL3))
+ then read_reg ELR_EL3
+ else return r
+
+let DataMemoryBarrier (domain, types) =
+ (if bitU_to_bool
+ ((neq (domain, MBReqDomain_FullSystem)) &. (neq (domain, MBReqDomain_InnerShareable)))
+ then not_implemented "DataMemoryBarrier: not MBReqDomain_FullSystem or _InnerShareable"
+ else return ()) >>
+ match types with
+ | MBReqTypes_Reads -> DataMemoryBarrier_Reads ()
+ | MBReqTypes_Writes -> DataMemoryBarrier_Writes ()
+ | MBReqTypes_All -> DataMemoryBarrier_All ()
+ end
+
+let wMem_Addr (address, size, acctype, excl) =
+ match (excl,acctype) with
+ | (B0, AccType_NORMAL) -> wMem_Addr_NORMAL (reset_vector_start address,size)
+ | (B0, AccType_STREAM) -> wMem_Addr_NORMAL (reset_vector_start address,size)
+ | (B0, AccType_UNPRIV) -> wMem_Addr_NORMAL (reset_vector_start address,size)
+ | (B0, AccType_ORDERED) -> wMem_Addr_ORDERED (reset_vector_start address,size)
+ | (B1, AccType_ATOMIC) -> wMem_Addr_ATOMIC (reset_vector_start address,size)
+ | (B1, AccType_ORDERED) -> wMem_Addr_ATOMIC_ORDERED (reset_vector_start address,size)
+ | _ -> not_implemented "unrecognised memory access"
+ end
+
+let SCTLR regime =
+ if bitU_to_bool (eq_vec (set_vector_start_to_length regime, set_vector_start_to_length EL1))
+ then SCTLR_EL1
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length regime, set_vector_start_to_length EL2))
+ then SCTLR_EL2
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length regime, set_vector_start_to_length EL3))
+ then SCTLR_EL3
+ else
+ let _ = assert' B0 (Just "SCTLR_type unreachable") in
+ SCTLR_EL1
+
+let DecodeRegExtend op =
+ match op with
+ | Vector [B0;B0;B0] _ _ -> ExtendType_UXTB
+ | Vector [B0;B0;B1] _ _ -> ExtendType_UXTH
+ | Vector [B0;B1;B0] _ _ -> ExtendType_UXTW
+ | Vector [B0;B1;B1] _ _ -> ExtendType_UXTX
+ | Vector [B1;B0;B0] _ _ -> ExtendType_SXTB
+ | Vector [B1;B0;B1] _ _ -> ExtendType_SXTH
+ | Vector [B1;B1;B0] _ _ -> ExtendType_SXTW
+ | Vector [B1;B1;B1] _ _ -> ExtendType_SXTX
+ end
+
+let rSP N' =
+ read_reg_bitfield SPSel "SP" >>= fun w__0 ->
+ if bitU_to_bool (eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then
+ read_reg SP_EL0 >>= fun w__1 ->
+ return (set_vector_start_to_length (mask (N',w__1)))
+ else
+ read_reg_field CurrentEL "EL" >>= fun pstate_el ->
+ if bitU_to_bool (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL0))
+ then
+ read_reg SP_EL0 >>= fun w__2 ->
+ return (set_vector_start_to_length (mask (N',w__2)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL1))
+ then
+ read_reg SP_EL1 >>= fun w__3 ->
+ return (set_vector_start_to_length (mask (N',w__3)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL2))
+ then
+ read_reg SP_EL2 >>= fun w__4 ->
+ return (set_vector_start_to_length (mask (N',w__4)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL3))
+ then
+ read_reg SP_EL3 >>= fun w__5 ->
+ return (set_vector_start_to_length (mask (N',w__5)))
+ else
+ let _ = assert' B0 (Nothing) in
+ read_reg SP_EL3 >>= fun w__6 ->
+ return (set_vector_start_to_length (mask (N',w__6)))
+
+let rSPSR () =
+ let result = to_vec_dec ((32:ii),(0:ii)) in
+ if bitU_to_bool (UsingAArch32 ())
+ then
+ not_implemented "rSPSR UsingAArch32" >>
+ return result
+ else
+ read_reg_field CurrentEL "EL" >>= fun pstate_el ->
+ if bitU_to_bool (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL1))
+ then read_reg SPSR_EL1
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL2))
+ then read_reg SPSR_EL2
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL3))
+ then read_reg SPSR_EL3
+ else return result
+
+let _R =
+ Vector [UndefinedRegister 0;R30;R29;R28;R27;R26;R25;R24;R23;R22;R21;R20;R19;R18;R17;R16;R15;R14;R13;R12;R11;
+ R10;R9;R8;R7;R6;R5;R4;R3;R2;R1;R0] 31 false
+
+let _V =
+ Vector [UndefinedRegister 0;V31;V30;V29;V28;V27;V26;V25;V24;V23;V22;V21;V20;V19;V18;V17;V16;V15;V14;V13;V12;
+ V11;V10;V9;V8;V7;V6;V5;V4;V3;V2;V1;V0] 32 false
+
+let ReservedValue () = AArch64_UndefinedFault ()
+
+let UnallocatedEncoding () = AArch64_UndefinedFault ()
+
+let CountLeadingSignBits x =
+ CountLeadingZeroBits
+ (reset_vector_start (set_vector_start_to_length
+ (bitwise_xor
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length x)
+ ((length (reset_vector_start (set_vector_start_to_length x))) - (1:ii)) (1:ii)),
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length x)
+ ((length (reset_vector_start (set_vector_start_to_length x))) - (2:ii)) (0:ii))))))
+
+let LSR_C (x, shift) =
+ let extended_x =
+ set_vector_start_to_length
+ (ZeroExtend ((length x) + shift,reset_vector_start (set_vector_start_to_length x))) in
+ let result =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length extended_x)
+ ((shift + (length (reset_vector_start (set_vector_start_to_length x)))) - (1:ii)) shift) in
+ let carry_out = access (set_vector_start_to_length extended_x) (shift - (1:ii)) in
+ (set_vector_start_to_length result,carry_out)
+
+let Ones N' =
+ set_vector_start_to_length
+ (Replicate (N',reset_vector_start (set_vector_start_to_length (Vector [B1] 0 false))))
+
+let SignExtend (N', ((Vector (h::_) _ _) as x)) =
+ let remainder = slice_raw x (1:ii) ((length (reset_vector_start x)) - (1:ii)) in
+ set_vector_start_to_length
+ ((set_vector_start_to_length
+ (set_vector_start_to_length
+ (Replicate
+ (N' - (length x),
+ reset_vector_start (set_vector_start_to_length (Vector [h] 0 false)))))) ^^
+ (set_vector_start_to_length x))
+
+let supported_instructions instr = match instr with | _ -> Just instr end
+
+let LSL (x, shift) =
+ let result = set_vector_start_to_length (to_vec_dec (length x,(0:ii))) in
+ if bitU_to_bool (eq_range (shift, (0:ii)))
+ then set_vector_start_to_length x
+ else
+ let (result', _) =
+ match (LSL_C (reset_vector_start (set_vector_start_to_length x),shift)) with
+ | (v0v', v1v') -> (v0v',v1v')
+ end in
+ set_vector_start_to_length result'
+
+let ThisInstrAddr N' =
+ let N = length (reset_vector_start (set_vector_start_to_length (to_vec_dec (N',(0:ii))))) in
+ let _ =
+ assert' ((eq_range (N, (64:ii))) |. ((eq_range (N, (32:ii))) &. (UsingAArch32 ()))) (Nothing) in
+ rPC () >>= fun w__0 ->
+ return (set_vector_start_to_length
+ (mask (N',reset_vector_start (set_vector_start_to_length w__0))))
+
+let AArch64_Abort (vaddress, fault) = not_implemented "AArch64_Abort"
+
+let rV (N', n) =
+ read_reg (access _V n) >>= fun w__0 ->
+ return (set_vector_start_to_length
+ (mask (N',reset_vector_start (set_vector_start_to_length w__0))))
+
+let rVpart (N', n, part) =
+ if bitU_to_bool (eq_range (part, (0:ii)))
+ then
+ read_reg (access _V n) >>= fun w__0 ->
+ return (set_vector_start_to_length
+ (set_vector_start_to_length (mask (N',reset_vector_start (set_vector_start_to_length w__0)))))
+ else
+ let _ =
+ assert' (eq_range
+ (length (reset_vector_start (set_vector_start_to_length (to_vec_dec (N',(0:ii))))),
+ (64:ii))) (Nothing) in
+ read_reg_range (access _V n) (127:ii) (64:ii) >>= fun w__1 ->
+ return (set_vector_start_to_length (set_vector_start 63 w__1))
+
+let ExternalInvasiveDebugEnabled () =
+ signalDBGEN () >>= fun w__0 ->
+ return (eq (w__0, HIGH))
+
+let Align (x, y) =
+ set_vector_start_to_length
+ (to_vec_dec (length x,Align' (UInt (reset_vector_start (set_vector_start_to_length x)),y)))
+
+let empty_read_buffer =
+ <| read_buffer_type_size = (0:ii);
+ read_buffer_type_acctype = AccType_NORMAL;
+ read_buffer_type_exclusive = B0;
+ read_buffer_type_address = (to_vec_dec ((64:ii),(0:ii))) |>
+
+let empty_write_buffer =
+ <| write_buffer_type_size = (0:ii);
+ write_buffer_type_acctype = AccType_NORMAL;
+ write_buffer_type_exclusive = B0;
+ write_buffer_type_address = (to_vec_dec ((64:ii),(0:ii)));
+ write_buffer_type_value = (to_vec_dec ((128:ii),(0:ii))) |>
+
+let HighestELUsingAArch32 () =
+ if bitU_to_bool (~(HaveAnyAArch32 ()))
+ then B0
+ else IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HighestELUsingAArch32
+
+let rX (N', n) =
+ if bitU_to_bool (neq_range (n, (31:ii)))
+ then
+ read_reg (access _R n) >>= fun w__0 ->
+ return (set_vector_start_to_length
+ (mask (N',reset_vector_start (set_vector_start_to_length w__0))))
+ else return (set_vector_start_to_length (Zeros N'))
+
+let rELR' () =
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ let _ =
+ assert' (neq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL0)) (Nothing) in
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ rELR (reset_vector_start (set_vector_start 1 w__1))
+
+let rSPIFP = [RFull "SP_EL0";PSTATE_SPfp]
+
+let wSPFP = ([PSTATE_SPfp],[RFull "SP_EL0"])
+
+let xFP n = if bitU_to_bool (neq_range (n, (31:ii))) then [RFull (access _Rs n)] else []
+
+let BigEndianIFP = if bitU_to_bool (UsingAArch32 ()) then [RFull "PSTATE_E"] else [PSTATE_ELfp]
+
+let flush_write_buffer_exclusive write_buffer =
+ let _ = assert' write_buffer.write_buffer_type_exclusive (Nothing) in
+ match write_buffer.write_buffer_type_acctype with
+ | AccType_ATOMIC ->
+ wMem_Val_ATOMIC
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | AccType_ORDERED ->
+ wMem_Val_ATOMIC
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | _ ->
+ not_implemented "unrecognised memory access" >>
+ return B0
+ end
+
+let AArch64_CreateFaultRecord (type', ipaddress, level, acctype, write, extflag, secondstage, s2fs1walk) =
+ <| FaultRecord_type' = type';
+ FaultRecord_domain = (to_vec_dec ((4:ii),UNKNOWN));
+ FaultRecord_debugmoe = (to_vec_dec ((4:ii),UNKNOWN));
+ FaultRecord_ipaddress = ipaddress;
+ FaultRecord_level = level;
+ FaultRecord_acctype = acctype;
+ FaultRecord_write = write;
+ FaultRecord_extflag = extflag;
+ FaultRecord_secondstage = secondstage;
+ FaultRecord_s2fs1walk = s2fs1walk |>
+
+let flush_write_buffer write_buffer =
+ let _ = assert' (eq_bit (write_buffer.write_buffer_type_exclusive, B0)) (Nothing) in
+ match write_buffer.write_buffer_type_acctype with
+ | AccType_NORMAL ->
+ wMem_Val_NORMAL
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | AccType_STREAM ->
+ wMem_Val_NORMAL
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | AccType_UNPRIV ->
+ wMem_Val_NORMAL
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | AccType_ORDERED ->
+ wMem_Val_NORMAL
+ (write_buffer.write_buffer_type_size,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))
+ | _ -> not_implemented "unrecognised memory access"
+ end
+
+let System_Get (op0, op1, crn, crm, op2) =
+ match toNaturalFiveTup (op0,op1,crn,crm,op2) with
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (0:nn)) ->
+ read_reg NZCV >>= fun w__0 ->
+ return (ZeroExtend ((64:ii),w__0))
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (1:nn)) ->
+ read_reg DAIF >>= fun w__1 ->
+ return (ZeroExtend ((64:ii),w__1))
+ | ((3:nn), (3:nn), (13:nn), (0:nn), (2:nn)) -> read_reg TPIDR_EL0
+ end
+
+let Prefetch (address, prfop) =
+ let hint =
+ match toNatural (0:ii) with
+ | (0:nn) -> Prefetch_READ
+ | (1:nn) -> Prefetch_WRITE
+ | (2:nn) -> Prefetch_EXEC
+ end in
+ let target = (0:ii) in
+ let stream = B0 in
+ let returnv = B0 in
+ let (returnv, hint) =
+ match (slice prfop (4:ii) (3:ii)) with
+ | Vector [B0;B0] _ _ ->
+ let hint = Prefetch_READ in
+ (returnv,hint)
+ | Vector [B0;B1] _ _ ->
+ let hint = Prefetch_EXEC in
+ (returnv,hint)
+ | Vector [B1;B0] _ _ ->
+ let hint = Prefetch_WRITE in
+ (returnv,hint)
+ | Vector [B1;B1] _ _ ->
+ let returnv = B1 in
+ (returnv,hint)
+ end in
+ let (target, stream) =
+ if bitU_to_bool (~returnv)
+ then
+ let target = unsigned (reset_vector_start (slice prfop (2:ii) (1:ii))) in
+ let stream = neq (match (access prfop (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ (target,stream)
+ else (target,stream) in
+ ()
+
+let DoubleLockStatus () =
+ if bitU_to_bool (ELUsingAArch32 (reset_vector_start EL1))
+ then
+ read_reg_bitfield DBGOSDLR "DLK" >>= fun w__0 ->
+ read_reg_bitfield DBGPRCR "CORENPDRQ" >>= fun w__1 ->
+ Halted () >>= fun w__2 ->
+ return ((eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ ((eq (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &. (~w__2)))
+ else
+ read_reg_bitfield OSDLR_EL1 "DLK" >>= fun w__3 ->
+ read_reg_bitfield DBGPRCR_EL1 "CORENPDRQ" >>= fun w__4 ->
+ Halted () >>= fun w__5 ->
+ return ((eq (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ ((eq (match w__4 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &. (~w__5)))
+
+let wSP ((), value) =
+ read_reg_bitfield SPSel "SP" >>= fun w__0 ->
+ if bitU_to_bool (eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then write_reg SP_EL0 (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else
+ read_reg_field CurrentEL "EL" >>= fun pstate_el ->
+ if bitU_to_bool (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL0))
+ then
+ write_reg SP_EL0 (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL1))
+ then
+ write_reg
+ SP_EL1
+ (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL2))
+ then
+ write_reg
+ SP_EL2
+ (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL3))
+ then
+ write_reg
+ SP_EL3
+ (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else return (assert' B0 (Nothing))
+
+let decodeTMCommit () = Just (TMCommit)
+
+let decodeTMTest () = Just (TMTest)
+
+let decodeTMAbort ((Vector [R;_;_;_;_;_] _ _) as v__975) =
+ let imm5 = slice_raw v__975 (1:ii) (5:ii) in
+ Just (TMAbort (R,reset_vector_start imm5))
+
+let wV (n, value) =
+ write_reg
+ (access _V n)
+ (ZeroExtend ((128:ii),reset_vector_start (set_vector_start_to_length value)))
+
+let wVpart (n, part, value) =
+ if bitU_to_bool (eq_range (part, (0:ii)))
+ then
+ write_reg
+ (access _V n)
+ (ZeroExtend ((128:ii),reset_vector_start (set_vector_start_to_length value)))
+ else
+ let _ =
+ assert' (eq_range
+ (length
+ (reset_vector_start (set_vector_start_to_length
+ (to_vec_dec (length value,(0:ii))))),
+ (64:ii))) (Nothing) in
+ write_reg_range (access _V n) (127:ii) (64:ii) (set_vector_start 127 value)
+
+let wX (n, value) =
+ if bitU_to_bool (neq_range (n, (31:ii)))
+ then
+ write_reg
+ (access _R n)
+ (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length value)))
+ else return ()
+
+let decodeAdvSIMDLoadStoreMultiStruct machineCode =
+ not_implemented "decodeAdvSIMDLoadStoreMultiStruct" >>
+ return (Just (Unallocated))
+
+let decodeAdvSIMDLoadStoreMultiStructPostIndexed machineCode =
+ not_implemented "decodeAdvSIMDLoadStoreMultiStructPostIndexed" >>
+ return (Just (Unallocated))
+
+let decodeAdvSIMDLoadStoreSingleStruct machineCode =
+ not_implemented "decodeAdvSIMDLoadStoreSingleStruct" >>
+ return (Just (Unallocated))
+
+let decodeAdvSIMDLoadStoreSingleStructPostIndexed machineCode =
+ not_implemented "decodeAdvSIMDLoadStoreSingleStructPostIndexed" >>
+ return (Just (Unallocated))
+
+let decodeDataSIMDFPoint1 machineCode =
+ not_implemented "decodeDataSIMDFPoint1" >>
+ return (Just (Unallocated))
+
+let decodeDataSIMDFPoint2 machineCode =
+ not_implemented "decodeDataSIMDFPoint2" >>
+ return (Just (Unallocated))
+
+let AArch64_CheckForWFxTrap (target_el, is_wfe) =
+ let _ = assert' (HaveEL (reset_vector_start target_el)) (Nothing) in
+ let trap = B0 in
+ (if bitU_to_bool (eq_vec (set_vector_start_to_length target_el, set_vector_start_to_length EL1))
+ then
+ (if bitU_to_bool is_wfe
+ then
+ read_reg_bitfield SCTLR_EL1 "nTWE" >>= fun w__0 ->
+ return (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end)
+ else
+ read_reg_bitfield SCTLR_EL1 "nTWI" >>= fun w__1 ->
+ return (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end)) >>= fun w__2 ->
+ let trap = eq (w__2, (0:ii)) in
+ return trap
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length target_el, set_vector_start_to_length EL2))
+ then
+ (if bitU_to_bool is_wfe
+ then
+ read_reg_bitfield HCR_EL2 "TWE" >>= fun w__3 ->
+ return (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end)
+ else
+ read_reg_bitfield HCR_EL2 "TWI" >>= fun w__4 ->
+ return (match w__4 with | B0 -> (0:ii) | B1 -> (1:ii) end)) >>= fun w__5 ->
+ let trap = eq (w__5, (1:ii)) in
+ return trap
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length target_el, set_vector_start_to_length EL3))
+ then
+ (if bitU_to_bool is_wfe
+ then
+ read_reg_bitfield SCR_EL3 "TWE" >>= fun w__6 ->
+ return (match w__6 with | B0 -> (0:ii) | B1 -> (1:ii) end)
+ else
+ read_reg_bitfield SCR_EL3 "TWI" >>= fun w__7 ->
+ return (match w__7 with | B0 -> (0:ii) | B1 -> (1:ii) end)) >>= fun w__8 ->
+ let trap = eq (w__8, (1:ii)) in
+ return trap
+ else
+ let _ = assert' B0 (Nothing) in
+ return trap) >>= fun trap ->
+ if bitU_to_bool trap
+ then AArch64_WFxTrap (reset_vector_start target_el,is_wfe)
+ else return ()
+
+let wmem_kind (acctype, exclusive) =
+ if bitU_to_bool exclusive
+ then
+ match acctype with
+ | AccType_ATOMIC -> return (IK_mem_write Write_exclusive)
+ | AccType_ORDERED -> return (IK_mem_write Write_exclusive_release)
+ | _ ->
+ not_implemented "unimplemented memory access" >>
+ return (IK_mem_write Write_exclusive)
+ end
+ else
+ match acctype with
+ | AccType_NORMAL -> return (IK_mem_write Write_plain)
+ | AccType_STREAM -> return (IK_mem_write Write_plain)
+ | AccType_UNPRIV -> return (IK_mem_write Write_plain)
+ | AccType_ORDERED -> return (IK_mem_write Write_release)
+ | _ ->
+ not_implemented "unimplemented memory access" >>
+ return (IK_mem_write Write_plain)
+ end
+
+let BranchTo (target, branch_type) =
+ let target' = set_vector_start_to_length target in
+ let _ = Hint_Branch branch_type in
+ (if bitU_to_bool
+ (eq_range (length (reset_vector_start (set_vector_start_to_length target)), (32:ii)))
+ then
+ let _ = assert' (UsingAArch32 ()) (Nothing) in
+ write_reg _PC (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length target))) >>
+ return target'
+ else
+ let _ =
+ assert' ((eq_range (length (reset_vector_start (set_vector_start_to_length target)), (64:ii))) &.
+ (~(UsingAArch32 ()))) (Nothing) in
+ read_reg_field CurrentEL "EL" >>= fun pstate_el ->
+ (if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL0))
+ then
+ read_reg_bitfield TCR_EL1 "TBI1" >>= fun w__0 ->
+ let target' =
+ if bitU_to_bool
+ ((eq
+ (match (access (set_vector_start_to_length target') (55:ii)) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (1:ii))) &. (eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B1;B1;B1;B1;B1;B1;B1;B1] 7 false))
+ else target' in
+ read_reg_bitfield TCR_EL1 "TBI0" >>= fun w__1 ->
+ let target' =
+ if bitU_to_bool
+ ((eq
+ (match (access (set_vector_start_to_length target') (55:ii)) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (0:ii))) &. (eq (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B0;B0;B0;B0;B0;B0;B0;B0] 7 false))
+ else target' in
+ return target'
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL1))
+ then
+ read_reg_bitfield TCR_EL1 "TBI1" >>= fun w__2 ->
+ let target' =
+ if bitU_to_bool
+ ((eq
+ (match (access (set_vector_start_to_length target') (55:ii)) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (1:ii))) &. (eq (match w__2 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B1;B1;B1;B1;B1;B1;B1;B1] 7 false))
+ else target' in
+ read_reg_bitfield TCR_EL1 "TBI0" >>= fun w__3 ->
+ let target' =
+ if bitU_to_bool
+ ((eq
+ (match (access (set_vector_start_to_length target') (55:ii)) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (0:ii))) &. (eq (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B0;B0;B0;B0;B0;B0;B0;B0] 7 false))
+ else target' in
+ return target'
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL2))
+ then
+ read_reg_bitfield TCR_EL2 "TBI" >>= fun w__4 ->
+ let target' =
+ if bitU_to_bool (eq (match w__4 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B0;B0;B0;B0;B0;B0;B0;B0] 7 false))
+ else target' in
+ return target'
+ else
+ if bitU_to_bool
+ (eq_vec (set_vector_start_to_length pstate_el, set_vector_start_to_length EL3))
+ then
+ read_reg_bitfield TCR_EL3 "TBI" >>= fun w__5 ->
+ let target' =
+ if bitU_to_bool (eq (match w__5 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then
+ update
+ target' (63:ii) (56:ii)
+ (set_vector_start 63 (Vector [B0;B0;B0;B0;B0;B0;B0;B0] 7 false))
+ else target' in
+ return target'
+ else return target') >>= fun target' ->
+ write_reg _PC target' >>
+ return target') >>= fun target' ->
+ return ()
+
+let rmem_kind (acctype, exclusive) =
+ if bitU_to_bool exclusive
+ then
+ match acctype with
+ | AccType_ATOMIC -> return (IK_mem_read Read_exclusive)
+ | AccType_ORDERED -> return (IK_mem_read Read_exclusive_acquire)
+ | _ ->
+ not_implemented "unimplemented memory access" >>
+ return (IK_mem_read Read_exclusive)
+ end
+ else
+ return (match acctype with
+ | AccType_NORMAL -> IK_mem_read Read_plain
+ | AccType_ATOMIC -> IK_mem_read Read_plain
+ | AccType_STREAM -> IK_mem_read Read_stream
+ | AccType_UNPRIV -> IK_mem_read Read_plain
+ | AccType_ORDERED -> IK_mem_read Read_acquire
+ end)
+
+let decodeTMStart Rt =
+ let t = UInt_reg (reset_vector_start Rt) in
+ Just (TMStart t)
+
+let decodeAddSubtractWithCarry ((Vector [sf;op;S;B1;B1;B0;B1;B0;B0;B0;B0;_;_;_;_;_;B0;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__969) =
+ let Rm = slice_raw v__969 (11:ii) (15:ii) in
+ let Rn = slice_raw v__969 (22:ii) (26:ii) in
+ let Rd = slice_raw v__969 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let setflags = eq (match S with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ Just (AddSubCarry (d,n,m,datasize,sub_op,setflags))
+
+let decodeConditionalCompareRegister ((Vector [sf;op;B1;B1;B1;B0;B1;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;B0;B0;_;_;_;_;_;B0;_;_;_;_] _ _) as v__961) =
+ let Rm = slice_raw v__961 (11:ii) (15:ii) in
+ let _cond = slice_raw v__961 (16:ii) (19:ii) in
+ let Rn = slice_raw v__961 (22:ii) (26:ii) in
+ let nzcv = slice_raw v__961 (28:ii) (31:ii) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let condition = set_vector_start 3 _cond in
+ let flags = set_vector_start 3 nzcv in
+ Just (ConditionalCompareRegister (n,m,datasize,sub_op,reset_vector_start condition,reset_vector_start flags))
+
+let decodeConditionalSelect ((Vector [sf;op;B0;B1;B1;B0;B1;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;B0;o2;_;_;_;_;_;_;_;_;_;_] _ _) as v__954) =
+ let Rm = slice_raw v__954 (11:ii) (15:ii) in
+ let _cond = slice_raw v__954 (16:ii) (19:ii) in
+ let Rn = slice_raw v__954 (22:ii) (26:ii) in
+ let Rd = slice_raw v__954 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let condition = set_vector_start 3 _cond in
+ let else_inv = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let else_inc = eq (match o2 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ Just (ConditionalSelect (d,n,m,datasize,reset_vector_start condition,else_inv,else_inc))
+
+let BranchToFP (iR, oR) =
+ (if bitU_to_bool (UsingAArch32 ())
+ then iR
+ else PSTATE_ELfp :: iR,_PCfp :: oR)
+
+let decodeImplementationDefined = function
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B1;B0;B1;B1;B1;_;B1;B1;B0;B0;B0;B0;B0;B0;B0;B0;B0;B0;B0;isEnd] _ _) as v__920) ->
+ Just (ImplementationDefinedTestBeginEnd isEnd)
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B1;B0;B1;B1;B1;_;B1;B1;B0;B0;B0;B0;B0;B0;B0;B0;B0;B0;B1;B0] _ _) as v__932) ->
+ Just (ImplementationDefinedStopFetching)
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B1;B0;B1;B1;B1;_;B1;B1;B0;B0;B0;B0;B0;B0;B0;B0;B0;B0;B1;B1] _ _) as v__943) ->
+ Just (ImplementationDefinedThreadStart)
+ end
+
+let NZCVfp = [PSTATE_Vfp;PSTATE_Cfp;PSTATE_Zfp;PSTATE_Nfp]
+
+let decodeConditionalCompareImmediate ((Vector [sf;op;B1;B1;B1;B0;B1;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;B1;B0;_;_;_;_;_;B0;_;_;_;_] _ _) as v__912) =
+ let imm5 = slice_raw v__912 (11:ii) (15:ii) in
+ let _cond = slice_raw v__912 (16:ii) (19:ii) in
+ let Rn = slice_raw v__912 (22:ii) (26:ii) in
+ let nzcv = slice_raw v__912 (28:ii) (31:ii) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let condition = set_vector_start 3 _cond in
+ let flags = set_vector_start 3 nzcv in
+ let imm =
+ set_vector_start_to_length
+ (ZeroExtend (datasize,reset_vector_start (set_vector_start_to_length imm5))) in
+ Just (ConditionalCompareImmediate (n,datasize,sub_op,reset_vector_start condition,reset_vector_start flags,reset_vector_start (set_vector_start_to_length
+ imm)))
+
+let decodeMoveWideImmediate ((Vector [sf;_;_;B1;B0;B0;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__909) =
+ let opc = slice_raw v__909 (1:ii) (2:ii) in
+ let hw = slice_raw v__909 (9:ii) (10:ii) in
+ let imm16 = slice_raw v__909 (11:ii) (26:ii) in
+ let Rd = slice_raw v__909 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let imm = imm16 in
+ let pos = (0:ii) in
+ let opcode =
+ match toNatural (0:ii) with
+ | (0:nn) -> MoveWideOp_N
+ | (1:nn) -> MoveWideOp_Z
+ | (2:nn) -> MoveWideOp_K
+ end in
+ match opc with
+ | Vector [B0;B0] _ _ -> return MoveWideOp_N
+ | Vector [B1;B0] _ _ -> return MoveWideOp_Z
+ | Vector [B1;B1] _ _ -> return MoveWideOp_K
+ | _ ->
+ UnallocatedEncoding () >>
+ return opcode
+ end >>= fun opcode ->
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (eq (match (access hw (1:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let pos =
+ UInt
+ (reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length hw) ^^
+ (set_vector_start_to_length (Vector [B0;B0;B0;B0] 3 false))))) in
+ return (Just (MoveWide (d,datasize,reset_vector_start imm,pos,opcode)))
+
+let decodeLoadStoreExclusive ((Vector [_;_;B0;B0;B1;B0;B0;B0;o2;L;o1;_;_;_;_;_;o0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__903) =
+ let size = slice_raw v__903 (0:ii) (1:ii) in
+ let Rs = slice_raw v__903 (11:ii) (15:ii) in
+ let Rt2 = slice_raw v__903 (17:ii) (21:ii) in
+ let Rn = slice_raw v__903 (22:ii) (26:ii) in
+ let Rt = slice_raw v__903 (27:ii) (31:ii) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let t2 = UInt_reg (reset_vector_start Rt2) in
+ let s = UInt_reg (reset_vector_start Rs) in
+ (if bitU_to_bool
+ ((eq_vec
+ (set_vector_start_to_length (Vector [o2;o1;o0] 2 false),
+ set_vector_start_to_length (Vector [B1;B0;B0] 2 false))) |.
+ (eq_vec
+ (set_vector_start_to_length (Vector [o2;o1] 1 false),
+ set_vector_start_to_length (Vector [B1;B1] 1 false))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (match o1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ (eq (match (access size (1:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let acctype =
+ if bitU_to_bool (eq (match o0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then AccType_ORDERED
+ else AccType_ATOMIC in
+ let excl = eq (match o2 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ let pair = eq (match o1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let memop =
+ if bitU_to_bool (eq (match L with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then MemOp_LOAD
+ else MemOp_STORE in
+ let elsize = lsl' ((8:ii),UInt (reset_vector_start (set_vector_start_to_length size))) in
+ let regsize = if bitU_to_bool (eq_range (elsize, (64:ii))) then (64:ii) else (32:ii) in
+ let datasize = if bitU_to_bool pair then elsize * (2:ii) else elsize in
+ return (Just (LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize)))
+
+let sharedDecodeLoadImmediate (opc, size, Rn, Rt, wback, postindex, scale, offset, acctype, prefetchAllowed) =
+ let n = UInt_reg Rn in
+ let t = UInt_reg Rt in
+ let memop =
+ match toNatural (0:ii) with
+ | (0:nn) -> MemOp_LOAD
+ | (1:nn) -> MemOp_STORE
+ | (2:nn) -> MemOp_PREFETCH
+ end in
+ let _signed = B0 in
+ let regsize = (64:ii) in
+ (if bitU_to_bool (eq (match (access opc (1:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then
+ let memop =
+ if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then MemOp_LOAD
+ else MemOp_STORE in
+ let regsize =
+ if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B1] 1 false)))
+ then (64:ii)
+ else (32:ii) in
+ let _signed = B0 in
+ return (memop,regsize,_signed)
+ else
+ (if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B1] 1 false)))
+ then
+ (if bitU_to_bool prefetchAllowed
+ then
+ let memop = MemOp_PREFETCH in
+ (if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ return memop
+ else
+ UnallocatedEncoding () >>
+ return memop) >>= fun memop ->
+ return (regsize,_signed,memop)
+ else
+ let memop = MemOp_LOAD in
+ (if bitU_to_bool
+ ((eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B0] 1 false))) &.
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let regsize =
+ if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (32:ii)
+ else (64:ii) in
+ let _signed = B1 in
+ return (regsize,_signed,memop)) >>= fun (regsize, _signed, memop) ->
+ return (memop,regsize,_signed)) >>= fun (memop, regsize, _signed) ->
+ let datasize = lsl' ((8:ii),scale) in
+ return (Just (LoadImmediate (n,t,acctype,memop,_signed,wback,postindex,reset_vector_start offset,regsize,datasize)))
+
+let sharedDecodeLoadRegister (Rn, Rt, Rm, opc, size, wback, postindex, scale, extend_type, shift) =
+ let n = UInt_reg Rn in
+ let t = UInt_reg Rt in
+ let m = UInt_reg Rm in
+ let acctype = AccType_NORMAL in
+ let memop =
+ match toNatural (0:ii) with
+ | (0:nn) -> MemOp_LOAD
+ | (1:nn) -> MemOp_STORE
+ | (2:nn) -> MemOp_PREFETCH
+ end in
+ let _signed = B0 in
+ let regsize = (64:ii) in
+ (if bitU_to_bool (eq (match (access opc (1:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then
+ let memop =
+ if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then MemOp_LOAD
+ else MemOp_STORE in
+ let regsize =
+ if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B1] 1 false)))
+ then (64:ii)
+ else (32:ii) in
+ let _signed = B0 in
+ return (memop,regsize,_signed)
+ else
+ (if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B1] 1 false)))
+ then
+ let memop = MemOp_PREFETCH in
+ (if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ return (regsize,_signed,memop)
+ else
+ let memop = MemOp_LOAD in
+ (if bitU_to_bool
+ ((eq_vec
+ (set_vector_start_to_length size,
+ set_vector_start_to_length (Vector [B1;B0] 1 false))) &.
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let regsize =
+ if bitU_to_bool
+ (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (32:ii)
+ else (64:ii) in
+ let _signed = B1 in
+ return (regsize,_signed,memop)) >>= fun (regsize, _signed, memop) ->
+ return (memop,regsize,_signed)) >>= fun (memop, regsize, _signed) ->
+ let datasize = lsl' ((8:ii),scale) in
+ return (Just (LoadRegister (n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize)))
+
+let ConditionHoldsIFP _cond =
+ match (slice _cond (3:ii) (1:ii)) with
+ | Vector [B0;B0;B0] _ _ -> [PSTATE_Zfp]
+ | Vector [B0;B0;B1] _ _ -> [PSTATE_Cfp]
+ | Vector [B0;B1;B0] _ _ -> [PSTATE_Nfp]
+ | Vector [B0;B1;B1] _ _ -> [PSTATE_Vfp]
+ | Vector [B1;B0;B0] _ _ -> [PSTATE_Zfp;PSTATE_Cfp]
+ | Vector [B1;B0;B1] _ _ -> [PSTATE_Vfp;PSTATE_Nfp]
+ | Vector [B1;B1;B0] _ _ -> [PSTATE_Zfp;PSTATE_Vfp;PSTATE_Nfp]
+ | Vector [B1;B1;B1] _ _ -> []
+ end
+
+let decodeAddSubtractImmediate ((Vector [sf;op;S;B1;B0;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__898) =
+ let shift = slice_raw v__898 (8:ii) (9:ii) in
+ let imm12 = slice_raw v__898 (10:ii) (21:ii) in
+ let Rn = slice_raw v__898 (22:ii) (26:ii) in
+ let Rd = slice_raw v__898 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let setflags = eq (match S with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let imm = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ match shift with
+ | Vector [B0;B0] _ _ ->
+ let imm =
+ set_vector_start_to_length
+ (ZeroExtend (datasize,reset_vector_start (set_vector_start_to_length imm12))) in
+ return imm
+ | Vector [B0;B1] _ _ ->
+ let imm =
+ set_vector_start_to_length
+ (ZeroExtend
+ (datasize,
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm12) ^^
+ (set_vector_start_to_length
+ (duplicate_bits (set_vector_start_to_length (Vector [B0] 0 false), (12:ii)))))))) in
+ return imm
+ | Vector [B1;_] _ _ ->
+ ReservedValue () >>
+ return imm
+ end >>= fun imm ->
+ return (Just (AddSubImmediate (d,n,datasize,sub_op,setflags,reset_vector_start (set_vector_start_to_length
+ imm))))
+
+let decodeData3Source = function
+ | ((Vector [sf;B0;B0;B1;B1;B0;B1;B1;B0;B0;B0;_;_;_;_;_;o0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__878) ->
+ let Rm = slice_raw v__878 (11:ii) (15:ii) in
+ let Ra = slice_raw v__878 (17:ii) (21:ii) in
+ let Rn = slice_raw v__878 (22:ii) (26:ii) in
+ let Rd = slice_raw v__878 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let a = UInt_reg (reset_vector_start Ra) in
+ let destsize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let datasize = destsize in
+ let sub_op = eq (match o0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ Just (MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op))
+ | ((Vector [B1;B0;B0;B1;B1;B0;B1;B1;U;B0;B1;_;_;_;_;_;o0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__884) ->
+ let Rm = slice_raw v__884 (11:ii) (15:ii) in
+ let Ra = slice_raw v__884 (17:ii) (21:ii) in
+ let Rn = slice_raw v__884 (22:ii) (26:ii) in
+ let Rd = slice_raw v__884 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let a = UInt_reg (reset_vector_start Ra) in
+ let destsize = (64:ii) in
+ let datasize = (32:ii) in
+ let sub_op = eq (match o0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let _unsigned = eq (match U with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ Just (MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,_unsigned))
+ | ((Vector [B1;B0;B0;B1;B1;B0;B1;B1;U;B1;B0;_;_;_;_;_;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__891) ->
+ let Rm = slice_raw v__891 (11:ii) (15:ii) in
+ let Ra = slice_raw v__891 (17:ii) (21:ii) in
+ let Rn = slice_raw v__891 (22:ii) (26:ii) in
+ let Rd = slice_raw v__891 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let a = UInt_reg (reset_vector_start Ra) in
+ let destsize = (64:ii) in
+ let datasize = destsize in
+ let _unsigned = eq (match U with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ Just (MultiplyHigh (d,n,m,a,destsize,datasize,_unsigned))
+ end
+
+let decodeExtract ((Vector [sf;B0;B0;B1;B0;B0;B1;B1;B1;N;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__872) =
+ let Rm = slice_raw v__872 (11:ii) (15:ii) in
+ let imms = slice_raw v__872 (16:ii) (21:ii) in
+ let Rn = slice_raw v__872 (22:ii) (26:ii) in
+ let Rd = slice_raw v__872 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let lsb = (0:ii) in
+ (if bitU_to_bool (neq_bit (N, sf))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (eq (match (access imms (5:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then ReservedValue ()
+ else return ()) >>
+ let lsb = UInt (reset_vector_start (set_vector_start_to_length imms)) in
+ return (Just (ExtractRegister (d,n,m,datasize,lsb)))
+
+let decodeAddSubtractExtendedRegister ((Vector [sf;op;S;B0;B1;B0;B1;B1;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__865) =
+ let Rm = slice_raw v__865 (11:ii) (15:ii) in
+ let option_v = slice_raw v__865 (16:ii) (18:ii) in
+ let imm3 = slice_raw v__865 (19:ii) (21:ii) in
+ let Rn = slice_raw v__865 (22:ii) (26:ii) in
+ let Rd = slice_raw v__865 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let setflags = eq (match S with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let extend_type = DecodeRegExtend (reset_vector_start (set_vector_start 2 option_v)) in
+ let shift = UInt (reset_vector_start (set_vector_start_to_length imm3)) in
+ (if bitU_to_bool (gt (shift, (4:ii)))
+ then ReservedValue ()
+ else return ()) >>
+ return (Just (AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift)))
+
+let decodeAddSubtractShiftedRegister ((Vector [sf;op;S;B0;B1;B0;B1;B1;_;_;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__859) =
+ let shift = slice_raw v__859 (8:ii) (9:ii) in
+ let Rm = slice_raw v__859 (11:ii) (15:ii) in
+ let imm6 = slice_raw v__859 (16:ii) (21:ii) in
+ let Rn = slice_raw v__859 (22:ii) (26:ii) in
+ let Rd = slice_raw v__859 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let sub_op = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let setflags = eq (match S with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ (if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length shift,
+ set_vector_start_to_length (Vector [B1;B1] 1 false)))
+ then ReservedValue ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (eq (match (access imm6 (5:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then ReservedValue ()
+ else return ()) >>
+ let shift_type = DecodeShift (reset_vector_start (set_vector_start 1 shift)) in
+ let shift_amount = UInt (reset_vector_start (set_vector_start_to_length imm6)) in
+ return (Just (AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount)))
+
+let decodeLogicalShiftedRegister ((Vector [sf;_;_;B0;B1;B0;B1;B0;_;_;N;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__855) =
+ let opc = slice_raw v__855 (1:ii) (2:ii) in
+ let shift = slice_raw v__855 (8:ii) (9:ii) in
+ let Rm = slice_raw v__855 (11:ii) (15:ii) in
+ let imm6 = slice_raw v__855 (16:ii) (21:ii) in
+ let Rn = slice_raw v__855 (22:ii) (26:ii) in
+ let Rd = slice_raw v__855 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let setflags = B0 in
+ let op = LogicalOp_AND in
+ let (op, setflags) =
+ match opc with
+ | Vector [B0;B0] _ _ ->
+ let op = LogicalOp_AND in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B0;B1] _ _ ->
+ let op = LogicalOp_ORR in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B1;B0] _ _ ->
+ let op = LogicalOp_EOR in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B1;B1] _ _ ->
+ let op = LogicalOp_AND in
+ let setflags = B1 in
+ (op,setflags)
+ end in
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (eq (match (access imm6 (5:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then ReservedValue ()
+ else return ()) >>
+ let shift_type = DecodeShift (reset_vector_start (set_vector_start 1 shift)) in
+ let shift_amount = UInt (reset_vector_start (set_vector_start_to_length imm6)) in
+ let invert = eq (match N with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return (Just (LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert)))
+
+let decodeData1Source = function
+ | ((Vector [sf;B1;B0;B1;B1;B0;B1;B0;B1;B1;B0;B0;B0;B0;B0;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__840) ->
+ let opc = slice_raw v__840 (20:ii) (21:ii) in
+ let Rn = slice_raw v__840 (22:ii) (26:ii) in
+ let Rd = slice_raw v__840 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let op =
+ match toNatural (0:ii) with
+ | (0:nn) -> RevOp_RBIT
+ | (1:nn) -> RevOp_REV16
+ | (2:nn) -> RevOp_REV32
+ | (3:nn) -> RevOp_REV64
+ end in
+ match opc with
+ | Vector [B0;B0] _ _ -> return RevOp_RBIT
+ | Vector [B0;B1] _ _ -> return RevOp_REV16
+ | Vector [B1;B0] _ _ -> return RevOp_REV32
+ | Vector [B1;B1] _ _ ->
+ (if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ return RevOp_REV64
+ end >>= fun op ->
+ return (Just (Reverse (d,n,datasize,op)))
+ | ((Vector [sf;B1;B0;B1;B1;B0;B1;B0;B1;B1;B0;B0;B0;B0;B0;B0;B0;B0;B0;B1;B0;op;_;_;_;_;_;_;_;_;_;_] _ _) as v__847) ->
+ let Rn = slice_raw v__847 (22:ii) (26:ii) in
+ let Rd = slice_raw v__847 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let opcode =
+ if bitU_to_bool (eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then CountOp_CLZ
+ else CountOp_CLS in
+ return (Just (CountLeading (d,n,datasize,opcode)))
+ end
+
+let decodeUnconditionalBranchRegister = function
+ | ((Vector [B1;B1;B0;B1;B0;B1;B1;B0;B0;_;_;B1;B1;B1;B1;B1;B0;B0;B0;B0;B0;B0;_;_;_;_;_;B0;B0;B0;B0;B0] _ _) as v__820) ->
+ let op = slice_raw v__820 (9:ii) (10:ii) in
+ let Rn = slice_raw v__820 (22:ii) (26:ii) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let branch_type =
+ match toNatural (0:ii) with
+ | (0:nn) -> BranchType_CALL
+ | (1:nn) -> BranchType_ERET
+ | (2:nn) -> BranchType_DBGEXIT
+ | (3:nn) -> BranchType_RET
+ | (4:nn) -> BranchType_JMP
+ | (5:nn) -> BranchType_EXCEPTION
+ | (6:nn) -> BranchType_UNKNOWN
+ end in
+ match op with
+ | Vector [B0;B0] _ _ -> return BranchType_JMP
+ | Vector [B0;B1] _ _ -> return BranchType_CALL
+ | Vector [B1;B0] _ _ -> return BranchType_RET
+ | _ ->
+ UnallocatedEncoding () >>
+ return branch_type
+ end >>= fun branch_type ->
+ return (Just (BranchRegister (n,branch_type)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B1;B0;B1;B0;B0;B1;B1;B1;B1;B1;B0;B0;B0;B0;B0;B0;B1;B1;B1;B1;B1;B0;B0;B0;B0;B0] _ _) as v__826) ->
+ return (Just (ExceptionReturn))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B1;B0;B1;B0;B1;B1;B1;B1;B1;B1;B0;B0;B0;B0;B0;B0;B1;B1;B1;B1;B1;B0;B0;B0;B0;B0] _ _) as v__833) ->
+ return (Just (DebugRestorePState))
+ end
+
+let decodeData2Source = function
+ | ((Vector [sf;B0;B0;B1;B1;B0;B1;B0;B1;B1;B0;_;_;_;_;_;B0;B0;B0;B0;B1;o1;_;_;_;_;_;_;_;_;_;_] _ _) as v__800) ->
+ let Rm = slice_raw v__800 (11:ii) (15:ii) in
+ let Rn = slice_raw v__800 (22:ii) (26:ii) in
+ let Rd = slice_raw v__800 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let _unsigned = eq (match o1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ return (Just (Division (d,n,m,datasize,_unsigned)))
+ | ((Vector [sf;B0;B0;B1;B1;B0;B1;B0;B1;B1;B0;_;_;_;_;_;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__807) ->
+ let Rm = slice_raw v__807 (11:ii) (15:ii) in
+ let op2 = slice_raw v__807 (20:ii) (21:ii) in
+ let Rn = slice_raw v__807 (22:ii) (26:ii) in
+ let Rd = slice_raw v__807 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let shift_type = DecodeShift (reset_vector_start (set_vector_start 1 op2)) in
+ return (Just (Shift (d,n,m,datasize,shift_type)))
+ | ((Vector [sf;B0;B0;B1;B1;B0;B1;B0;B1;B1;B0;_;_;_;_;_;B0;B1;B0;C;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__813) ->
+ let Rm = slice_raw v__813 (11:ii) (15:ii) in
+ let sz = slice_raw v__813 (20:ii) (21:ii) in
+ let Rn = slice_raw v__813 (22:ii) (26:ii) in
+ let Rd = slice_raw v__813 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let m = UInt_reg (reset_vector_start Rm) in
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ (neq_vec
+ (set_vector_start_to_length sz,
+ set_vector_start_to_length (Vector [B1;B1] 1 false))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (eq_vec
+ (set_vector_start_to_length sz,
+ set_vector_start_to_length (Vector [B1;B1] 1 false))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let size = lsl' ((8:ii),UInt (reset_vector_start (set_vector_start_to_length sz))) in
+ let crc32c = eq (match C with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return (Just (CRC (d,n,m,size,crc32c)))
+ end
+
+let decodeExceptionGeneration = function
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;B0;B1] _ _) as v__771) ->
+ let imm16 = slice_raw v__771 (11:ii) (26:ii) in
+ let imm = imm16 in
+ return (Just (GenerateExceptionEL1 (reset_vector_start imm)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;B1;B0] _ _) as v__776) ->
+ let imm16 = slice_raw v__776 (11:ii) (26:ii) in
+ let imm = imm16 in
+ return (Just (GenerateExceptionEL2 (reset_vector_start imm)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;B1;B1] _ _) as v__781) ->
+ let imm16 = slice_raw v__781 (11:ii) (26:ii) in
+ let imm = imm16 in
+ return (Just (GenerateExceptionEL3 (reset_vector_start imm)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;B0;B0] _ _) as v__786) ->
+ let imm16 = slice_raw v__786 (11:ii) (26:ii) in
+ let comment = imm16 in
+ return (Just (DebugBreakpoint (reset_vector_start comment)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;B0;B0] _ _) as v__791) ->
+ let imm16 = slice_raw v__791 (11:ii) (26:ii) in
+ return (Just (ExternalDebugBreakpoint))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;B0;B0;_;_] _ _) as v__796) ->
+ let imm16 = slice_raw v__796 (11:ii) (26:ii) in
+ let LL = slice_raw v__796 (30:ii) (31:ii) in
+ let target_level = LL in
+ (if bitU_to_bool
+ (eq_vec
+ (set_vector_start_to_length LL,
+ set_vector_start_to_length (Vector [B0;B0] 1 false)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ return (Just (DebugSwitchToExceptionLevel (reset_vector_start target_level)))
+ end
+
+let decodeSystem = function
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;_;_;_;B0;B1;B0;B0;_;_;_;_;_;_;_;B1;B1;B1;B1;B1] _ _) as v__706) ->
+ let op1 = slice_raw v__706 (13:ii) (15:ii) in
+ let CRm = slice_raw v__706 (20:ii) (23:ii) in
+ let op2 = slice_raw v__706 (24:ii) (26:ii) in
+ let operand = set_vector_start 3 CRm in
+ let field' =
+ match toNatural (0:ii) with
+ | (0:nn) -> PSTATEField_DAIFSet
+ | (1:nn) -> PSTATEField_DAIFClr
+ | (2:nn) -> PSTATEField_SP
+ end in
+ match ((set_vector_start_to_length op1) ^^ (set_vector_start_to_length op2)) with
+ | ((Vector [B0;B0;B0;B1;B0;B1] _ _) as v__712) -> return PSTATEField_SP
+ | ((Vector [B0;B1;B1;B1;B1;B0] _ _) as v__715) -> return PSTATEField_DAIFSet
+ | ((Vector [B0;B1;B1;B1;B1;B1] _ _) as v__718) -> return PSTATEField_DAIFClr
+ | _ ->
+ UnallocatedEncoding () >>
+ return field'
+ end >>= fun field' ->
+ return (Just (MoveSystemImmediate (reset_vector_start operand,field')))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;B0;B1;B1;B0;B0;B1;B0;_;_;_;_;_;_;_;B1;B1;B1;B1;B1] _ _) as v__721) ->
+ let CRm = slice_raw v__721 (20:ii) (23:ii) in
+ let op2 = slice_raw v__721 (24:ii) (26:ii) in
+ let op =
+ match toNatural (0:ii) with
+ | (0:nn) -> SystemHintOp_NOP
+ | (1:nn) -> SystemHintOp_YIELD
+ | (2:nn) -> SystemHintOp_WFE
+ | (3:nn) -> SystemHintOp_WFI
+ | (4:nn) -> SystemHintOp_SEV
+ | (5:nn) -> SystemHintOp_SEVL
+ end in
+ let op =
+ match ((set_vector_start_to_length CRm) ^^ (set_vector_start_to_length op2)) with
+ | ((Vector [B0;B0;B0;B0;B0;B0;B0] _ _) as v__728) -> SystemHintOp_NOP
+ | ((Vector [B0;B0;B0;B0;B0;B0;B1] _ _) as v__731) -> SystemHintOp_YIELD
+ | ((Vector [B0;B0;B0;B0;B0;B1;B0] _ _) as v__734) -> SystemHintOp_WFE
+ | ((Vector [B0;B0;B0;B0;B0;B1;B1] _ _) as v__737) -> SystemHintOp_WFI
+ | ((Vector [B0;B0;B0;B0;B1;B0;B0] _ _) as v__740) -> SystemHintOp_SEV
+ | ((Vector [B0;B0;B0;B0;B1;B0;B1] _ _) as v__743) -> SystemHintOp_SEVL
+ | _ -> SystemHintOp_NOP
+ end in
+ return (Just (Hint op))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;B0;B1;B1;B0;B0;B1;B1;_;_;_;_;B0;B1;B0;B1;B1;B1;B1;B1] _ _) as v__746) ->
+ let CRm = slice_raw v__746 (20:ii) (23:ii) in
+ let imm = unsigned (reset_vector_start CRm) in
+ return (Just (ClearExclusiveMonitor imm))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;B0;B0;B0;B0;B1;B1;B0;B0;B1;B1;_;_;_;_;B1;_;_;B1;B1;B1;B1;B1] _ _) as v__754) ->
+ let CRm = slice_raw v__754 (20:ii) (23:ii) in
+ let opc = slice_raw v__754 (25:ii) (26:ii) in
+ let op =
+ match toNatural (0:ii) with
+ | (0:nn) -> MemBarrierOp_DSB
+ | (1:nn) -> MemBarrierOp_DMB
+ | (2:nn) -> MemBarrierOp_ISB
+ end in
+ let domain =
+ match toNatural (0:ii) with
+ | (0:nn) -> MBReqDomain_Nonshareable
+ | (1:nn) -> MBReqDomain_InnerShareable
+ | (2:nn) -> MBReqDomain_OuterShareable
+ | (3:nn) -> MBReqDomain_FullSystem
+ end in
+ let types =
+ match toNatural (0:ii) with
+ | (0:nn) -> MBReqTypes_Reads
+ | (1:nn) -> MBReqTypes_Writes
+ | (2:nn) -> MBReqTypes_All
+ end in
+ match opc with
+ | Vector [B0;B0] _ _ -> return MemBarrierOp_DSB
+ | Vector [B0;B1] _ _ -> return MemBarrierOp_DMB
+ | Vector [B1;B0] _ _ -> return MemBarrierOp_ISB
+ | _ ->
+ UnallocatedEncoding () >>
+ return op
+ end >>= fun op ->
+ let domain =
+ match (slice CRm (3:ii) (2:ii)) with
+ | Vector [B0;B0] _ _ -> MBReqDomain_OuterShareable
+ | Vector [B0;B1] _ _ -> MBReqDomain_Nonshareable
+ | Vector [B1;B0] _ _ -> MBReqDomain_InnerShareable
+ | Vector [B1;B1] _ _ -> MBReqDomain_FullSystem
+ end in
+ let (domain, types) =
+ match (slice CRm (1:ii) (0:ii)) with
+ | Vector [B0;B1] _ _ ->
+ let types = MBReqTypes_Reads in
+ (domain,types)
+ | Vector [B1;B0] _ _ ->
+ let types = MBReqTypes_Writes in
+ (domain,types)
+ | Vector [B1;B1] _ _ ->
+ let types = MBReqTypes_All in
+ (domain,types)
+ | _ ->
+ let types = MBReqTypes_All in
+ let domain = MBReqDomain_FullSystem in
+ (domain,types)
+ end in
+ return (Just (Barrier (op,domain,types)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;L;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__762) ->
+ let op1 = slice_raw v__762 (13:ii) (15:ii) in
+ let CRn = slice_raw v__762 (16:ii) (19:ii) in
+ let CRm = slice_raw v__762 (20:ii) (23:ii) in
+ let op2 = slice_raw v__762 (24:ii) (26:ii) in
+ let Rt = slice_raw v__762 (27:ii) (31:ii) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let sys_op0 = (1:ii) in
+ let sys_op1 = UInt (reset_vector_start (set_vector_start_to_length op1)) in
+ let sys_op2 = UInt (reset_vector_start (set_vector_start_to_length op2)) in
+ let sys_crn = UInt (reset_vector_start (set_vector_start_to_length CRn)) in
+ let sys_crm = UInt (reset_vector_start (set_vector_start_to_length CRm)) in
+ let has_result = eq (match L with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return (Just (System (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;L;B1;o0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__766) ->
+ let op1 = slice_raw v__766 (13:ii) (15:ii) in
+ let CRn = slice_raw v__766 (16:ii) (19:ii) in
+ let CRm = slice_raw v__766 (20:ii) (23:ii) in
+ let op2 = slice_raw v__766 (24:ii) (26:ii) in
+ let Rt = slice_raw v__766 (27:ii) (31:ii) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let sys_op0 =
+ (2:ii) + (UInt (reset_vector_start (set_vector_start_to_length (Vector [o0] 0 false)))) in
+ let sys_op1 = UInt (reset_vector_start (set_vector_start_to_length op1)) in
+ let sys_op2 = UInt (reset_vector_start (set_vector_start_to_length op2)) in
+ let sys_crn = UInt (reset_vector_start (set_vector_start_to_length CRn)) in
+ let sys_crm = UInt (reset_vector_start (set_vector_start_to_length CRm)) in
+ let read = eq (match L with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ return (Just (MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read)))
+ end
+
+let ASR_C (x, shift) =
+ let extended_x =
+ set_vector_start_to_length
+ (SignExtend (shift + (length x),reset_vector_start (set_vector_start_to_length x))) in
+ let result =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length extended_x)
+ ((shift + (length (reset_vector_start (set_vector_start_to_length x)))) - (1:ii)) shift) in
+ let carry_out = access (set_vector_start_to_length extended_x) (shift - (1:ii)) in
+ (set_vector_start_to_length result,carry_out)
+
+let ASR (x, shift) =
+ let result = set_vector_start_to_length (to_vec_dec (length x,(0:ii))) in
+ if bitU_to_bool (eq_range (shift, (0:ii)))
+ then set_vector_start_to_length x
+ else
+ let (result', _) =
+ match (ASR_C (reset_vector_start (set_vector_start_to_length x),shift)) with
+ | (v0v', v1v') -> (v0v',v1v')
+ end in
+ set_vector_start_to_length result'
+
+let LSR (x, shift) =
+ let result = set_vector_start_to_length (to_vec_dec (length x,(0:ii))) in
+ if bitU_to_bool (eq_range (shift, (0:ii)))
+ then set_vector_start_to_length x
+ else
+ let (result', _) =
+ match (LSR_C (reset_vector_start (set_vector_start_to_length x),shift)) with
+ | (v0v', v1v') -> (v0v',v1v')
+ end in
+ set_vector_start_to_length result'
+
+let AArch64_ResetGeneralRegisters () =
+ (foreachM_inc ((0:ii),(30:ii),(1:ii)) ()
+ (fun i _ ->
+ wX (i,reset_vector_start (set_vector_start_to_length (to_vec_dec ((64:ii),UNKNOWN))))))
+
+let AArch64_ResetSIMDFPRegisters () =
+ (foreachM_inc ((0:ii),(31:ii),(1:ii)) ()
+ (fun i _ ->
+ wV (i,reset_vector_start (set_vector_start_to_length (to_vec_dec ((128:ii),UNKNOWN))))))
+
+let wMem'IFP = BigEndianIFP
+
+let IsFault addrdesc = neq (addrdesc.AddressDescriptor_fault.FaultRecord_type', Fault_None)
+
+let Extend (N', x, unsigned) =
+ if bitU_to_bool unsigned
+ then
+ set_vector_start_to_length (ZeroExtend (N',reset_vector_start (set_vector_start_to_length x)))
+ else
+ set_vector_start_to_length (SignExtend (N',reset_vector_start (set_vector_start_to_length x)))
+
+let _rMem (read_buffer, desc, size, acctype, exclusive) =
+ if bitU_to_bool (eq_range (read_buffer.read_buffer_type_size, (0:ii)))
+ then
+ <| read_buffer_type_acctype = acctype;
+ read_buffer_type_exclusive = exclusive;
+ read_buffer_type_address = desc.AddressDescriptor_paddress.FullAddress_physicaladdress;
+ read_buffer_type_size = size |>
+ else
+ let _ = assert' (eq (read_buffer.read_buffer_type_acctype, acctype)) (Nothing) in
+ let _ = assert' (eq_bit (read_buffer.read_buffer_type_exclusive, exclusive)) (Nothing) in
+ let _ =
+ assert' (eq_vec
+ (set_vector_start_to_length
+ (set_vector_start 63
+ (add_VIV
+ (reset_vector_start (set_vector_start_to_length
+ read_buffer.read_buffer_type_address))
+ read_buffer.read_buffer_type_size)),
+ set_vector_start_to_length
+ desc.AddressDescriptor_paddress.FullAddress_physicaladdress)) (Nothing) in
+ <|read_buffer with read_buffer_type_size = (read_buffer.read_buffer_type_size + size)|>
+
+let CheckSPAlignmentIFP = PSTATE_ELfp :: rSPIFP
+
+let SCR_GEN () =
+ let _ = assert' (HaveEL (reset_vector_start EL3)) (Nothing) in
+ if bitU_to_bool (HighestELUsingAArch32 ())
+ then SCR
+ else SCR_EL3
+
+let AArch64_AlignmentFault (acctype, iswrite, secondstage) =
+ let ipaddress = to_vec_dec ((48:ii),UNKNOWN) in
+ let level = UNKNOWN in
+ let extflag = if bitU_to_bool (is_one UNKNOWN) then B1 else B0 in
+ let s2fs1walk = if bitU_to_bool (is_one UNKNOWN) then B1 else B0 in
+ AArch64_CreateFaultRecord
+ (Fault_Alignment,
+ reset_vector_start ipaddress,
+ level,
+ acctype,
+ iswrite,
+ extflag,
+ secondstage,
+ s2fs1walk)
+
+let AArch64_NoFault () =
+ let ipaddress = to_vec_dec ((48:ii),UNKNOWN) in
+ let level = UNKNOWN in
+ let acctype = AccType_NORMAL in
+ let iswrite = if bitU_to_bool (is_one UNKNOWN) then B1 else B0 in
+ let extflag = if bitU_to_bool (is_one UNKNOWN) then B1 else B0 in
+ let secondstage = B0 in
+ let s2fs1walk = B0 in
+ AArch64_CreateFaultRecord
+ (Fault_None,
+ reset_vector_start ipaddress,
+ level,
+ acctype,
+ iswrite,
+ extflag,
+ secondstage,
+ s2fs1walk)
+
+let decodeConditionalBranchImmediate ((Vector [B0;B1;B0;B1;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;B0;_;_;_;_] _ _) as v__702) =
+ let imm19 = slice_raw v__702 (8:ii) (26:ii) in
+ let _cond = slice_raw v__702 (28:ii) (31:ii) in
+ let offset =
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm19) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false))))) in
+ let condition = set_vector_start 3 _cond in
+ Just (BranchConditional (reset_vector_start offset,reset_vector_start condition))
+
+let _wMem (write_buffer, desc, size, acctype, exclusive, value) =
+ if bitU_to_bool (eq_range (write_buffer.write_buffer_type_size, (0:ii)))
+ then
+ <| write_buffer_type_acctype = acctype;
+ write_buffer_type_exclusive = exclusive;
+ write_buffer_type_address = desc.AddressDescriptor_paddress.FullAddress_physicaladdress;
+ write_buffer_type_value =
+ (ZeroExtend ((128:ii),reset_vector_start (set_vector_start_to_length value)));
+ write_buffer_type_size = size |>
+ else
+ let _ = assert' (eq (write_buffer.write_buffer_type_acctype, acctype)) (Nothing) in
+ let _ = assert' (eq_bit (write_buffer.write_buffer_type_exclusive, exclusive)) (Nothing) in
+ let _ =
+ assert' (eq_vec
+ (set_vector_start_to_length
+ (set_vector_start 63
+ (add_VIV
+ (reset_vector_start (set_vector_start_to_length
+ write_buffer.write_buffer_type_address))
+ write_buffer.write_buffer_type_size)),
+ set_vector_start_to_length
+ desc.AddressDescriptor_paddress.FullAddress_physicaladdress)) (Nothing) in
+ <|write_buffer with
+ write_buffer_type_value =
+ (ZeroExtend
+ ((128:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length value) ^^
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length write_buffer.write_buffer_type_value)
+ ((write_buffer.write_buffer_type_size * (8:ii)) - (1:ii)) (0:ii))))))); write_buffer_type_size =
+ (write_buffer.write_buffer_type_size + size)|>
+
+let HaveAArch32EL el =
+ if bitU_to_bool (~(HaveEL (reset_vector_start el)))
+ then B0
+ else
+ if bitU_to_bool (~(HaveAnyAArch32 ()))
+ then B0
+ else
+ if bitU_to_bool (HighestELUsingAArch32 ())
+ then B1
+ else
+ if bitU_to_bool (eq_vec (set_vector_start_to_length el, set_vector_start_to_length EL0))
+ then B1
+ else IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_HaveAArch32EL
+
+let decodeUnconditionalBranchImmediate ((Vector [op;B0;B0;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__699) =
+ let imm26 = slice_raw v__699 (6:ii) (31:ii) in
+ let branch_type =
+ if bitU_to_bool (eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then BranchType_CALL
+ else BranchType_JMP in
+ let offset =
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm26) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false))))) in
+ Just (BranchImmediate (branch_type,reset_vector_start offset))
+
+let decodeCompareBranchImmediate ((Vector [sf;B0;B1;B1;B0;B1;B0;op;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__695) =
+ let imm19 = slice_raw v__695 (8:ii) (26:ii) in
+ let Rt = slice_raw v__695 (27:ii) (31:ii) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let iszero = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ let offset =
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm19) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false))))) in
+ Just (CompareAndBranch (t,datasize,iszero,reset_vector_start offset))
+
+let decodePCRelAddressing ((Vector [op;_;_;B1;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__692) =
+ let immlo = slice_raw v__692 (1:ii) (2:ii) in
+ let immhi = slice_raw v__692 (8:ii) (26:ii) in
+ let Rd = slice_raw v__692 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let page = eq (match op with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)) in
+ let imm = to_vec_dec ((64:ii),(0:ii)) in
+ let imm =
+ if bitU_to_bool page
+ then
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length immhi) ^^
+ (set_vector_start_to_length
+ ((set_vector_start_to_length immlo) ^^
+ (set_vector_start_to_length
+ (duplicate_bits (set_vector_start_to_length (Vector [B0] 0 false), (12:ii)))))))))
+ else
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length immhi) ^^ (set_vector_start_to_length immlo)))) in
+ Just (Address (d,page,reset_vector_start imm))
+
+let decodeTestBranchImmediate ((Vector [b5;B0;B1;B1;B0;B1;B1;op;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__688) =
+ let b40 = slice_raw v__688 (8:ii) (12:ii) in
+ let imm14 = slice_raw v__688 (13:ii) (26:ii) in
+ let Rt = slice_raw v__688 (27:ii) (31:ii) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let datasize =
+ if bitU_to_bool (eq (match b5 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let bit_pos =
+ UInt
+ (reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length (Vector [b5] 0 false)) ^^ (set_vector_start_to_length b40)))) in
+ let bit_val = op in
+ let offset =
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm14) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false))))) in
+ Just (TestBitAndBranch (t,datasize,bit_pos,bit_val,reset_vector_start offset))
+
+let decodeLoadStoreRegisterRegisterOffset ((Vector [_;_;B1;B1;B1;B0;B0;B0;_;_;B1;_;_;_;_;_;_;_;_;S;B1;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__681) =
+ let size = slice_raw v__681 (0:ii) (1:ii) in
+ let opc = slice_raw v__681 (8:ii) (9:ii) in
+ let Rm = slice_raw v__681 (11:ii) (15:ii) in
+ let option_v = slice_raw v__681 (16:ii) (18:ii) in
+ let Rn = slice_raw v__681 (22:ii) (26:ii) in
+ let Rt = slice_raw v__681 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ (if bitU_to_bool
+ (eq
+ (match (access (set_vector_start_to_length option_v) (1:ii)) with
+ | B0 -> (0:ii)
+ | B1 -> (1:ii)
+ end,
+ (0:ii)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let extend_type = DecodeRegExtend (reset_vector_start (set_vector_start 2 option_v)) in
+ let shift =
+ if bitU_to_bool (eq (match S with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then scale
+ else (0:ii) in
+ sharedDecodeLoadRegister
+ (reset_vector_start Rn,
+ reset_vector_start Rt,
+ reset_vector_start Rm,
+ reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ wback,
+ postindex,
+ scale,
+ extend_type,
+ shift)
+
+let decodeLoadRegisterLiteral ((Vector [_;_;B0;B1;B1;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__677) =
+ let opc = slice_raw v__677 (0:ii) (1:ii) in
+ let imm19 = slice_raw v__677 (8:ii) (26:ii) in
+ let Rt = slice_raw v__677 (27:ii) (31:ii) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let memop = MemOp_LOAD in
+ let _signed = B0 in
+ let size = (0:ii) in
+ let offset = to_vec_dec ((64:ii),(4:ii)) in
+ let (memop, _signed, size) =
+ match opc with
+ | Vector [B0;B0] _ _ ->
+ let size = (4:ii) in
+ (memop,_signed,size)
+ | Vector [B0;B1] _ _ ->
+ let size = (8:ii) in
+ (memop,_signed,size)
+ | Vector [B1;B0] _ _ ->
+ let size = (4:ii) in
+ let _signed = B1 in
+ (memop,_signed,size)
+ | Vector [B1;B1] _ _ ->
+ let memop = MemOp_PREFETCH in
+ (memop,_signed,size)
+ end in
+ let offset =
+ SignExtend
+ ((64:ii),
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length imm19) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false))))) in
+ let datasize = size * (8:ii) in
+ Just (LoadLiteral (t,memop,_signed,size,reset_vector_start offset,datasize))
+
+let ROR_C (x, shift) =
+ let N = length (reset_vector_start (set_vector_start_to_length x)) in
+ let m = modulo shift N in
+ let result =
+ set_vector_start_to_length
+ (bitwise_or
+ (set_vector_start_to_length (LSR (reset_vector_start (set_vector_start_to_length x),m)),
+ set_vector_start_to_length (LSL (reset_vector_start (set_vector_start_to_length x),N - m)))) in
+ let carry_out = access (set_vector_start_to_length result) (N - (1:ii)) in
+ (set_vector_start_to_length result,carry_out)
+
+let decodeSystemImplementationDefined machineCode =
+ match machineCode with
+ | ((Vector [_;_;_;_;_;_;_;_;_;_;_;B0;B1;_;_;_;B1;_;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__647) ->
+ return (decodeImplementationDefined (reset_vector_start machineCode))
+ | ((Vector [_;_;_;_;_;_;_;_;_;_;_;B1;B1;_;_;_;B1;_;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__657) ->
+ return (decodeImplementationDefined (reset_vector_start machineCode))
+ | ((Vector [_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__667) ->
+ decodeSystem (reset_vector_start machineCode)
+ end
+
+let decodeLoadStoreRegisterImmediatePostIndexed ((Vector [_;_;B1;B1;B1;B0;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B0;B1;_;_;_;_;_;_;_;_;_;_] _ _) as v__641) =
+ let size = slice_raw v__641 (0:ii) (1:ii) in
+ let opc = slice_raw v__641 (8:ii) (9:ii) in
+ let imm9 = slice_raw v__641 (11:ii) (19:ii) in
+ let Rn = slice_raw v__641 (22:ii) (26:ii) in
+ let Rt = slice_raw v__641 (27:ii) (31:ii) in
+ let wback = B1 in
+ let postindex = B1 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ let offset = SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm9)) in
+ sharedDecodeLoadImmediate
+ (reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ wback,
+ postindex,
+ scale,
+ reset_vector_start offset,
+ AccType_NORMAL,
+ B0)
+
+let decodeLoadStoreRegisterImmediatePreIndexed ((Vector [_;_;B1;B1;B1;B0;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B1;B1;_;_;_;_;_;_;_;_;_;_] _ _) as v__635) =
+ let size = slice_raw v__635 (0:ii) (1:ii) in
+ let opc = slice_raw v__635 (8:ii) (9:ii) in
+ let imm9 = slice_raw v__635 (11:ii) (19:ii) in
+ let Rn = slice_raw v__635 (22:ii) (26:ii) in
+ let Rt = slice_raw v__635 (27:ii) (31:ii) in
+ let wback = B1 in
+ let postindex = B0 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ let offset = SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm9)) in
+ sharedDecodeLoadImmediate
+ (reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ wback,
+ postindex,
+ scale,
+ reset_vector_start offset,
+ AccType_NORMAL,
+ B0)
+
+let decodeLoadStoreRegisterUnprivileged ((Vector [_;_;B1;B1;B1;B0;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B1;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__629) =
+ let size = slice_raw v__629 (0:ii) (1:ii) in
+ let opc = slice_raw v__629 (8:ii) (9:ii) in
+ let imm9 = slice_raw v__629 (11:ii) (19:ii) in
+ let Rn = slice_raw v__629 (22:ii) (26:ii) in
+ let Rt = slice_raw v__629 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ let offset = SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm9)) in
+ sharedDecodeLoadImmediate
+ (reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ wback,
+ postindex,
+ scale,
+ reset_vector_start offset,
+ AccType_UNPRIV,
+ B0)
+
+let decodeLoadStoreRegisterUnscaledImmediate ((Vector [_;_;B1;B1;B1;B0;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B0;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__623) =
+ let size = slice_raw v__623 (0:ii) (1:ii) in
+ let opc = slice_raw v__623 (8:ii) (9:ii) in
+ let imm9 = slice_raw v__623 (11:ii) (19:ii) in
+ let Rn = slice_raw v__623 (22:ii) (26:ii) in
+ let Rt = slice_raw v__623 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ let offset = SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm9)) in
+ sharedDecodeLoadImmediate
+ (reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ wback,
+ postindex,
+ scale,
+ reset_vector_start offset,
+ AccType_NORMAL,
+ B1)
+
+let decodeLoadStoreRegisterUnsignedImmediate ((Vector [_;_;B1;B1;B1;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__619) =
+ let size = slice_raw v__619 (0:ii) (1:ii) in
+ let opc = slice_raw v__619 (8:ii) (9:ii) in
+ let imm12 = slice_raw v__619 (10:ii) (21:ii) in
+ let Rn = slice_raw v__619 (22:ii) (26:ii) in
+ let Rt = slice_raw v__619 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ let scale = UInt (reset_vector_start (set_vector_start_to_length size)) in
+ let offset =
+ LSL
+ (reset_vector_start (set_vector_start_to_length
+ (ZeroExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm12)))),
+ scale) in
+ sharedDecodeLoadImmediate
+ (reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start 1 size),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ wback,
+ postindex,
+ scale,
+ reset_vector_start offset,
+ AccType_NORMAL,
+ B1)
+
+let decodeLoadStoreNoAllocatePairOffset ((Vector [_;_;B1;B0;B1;B0;B0;B0;B0;L;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__614) =
+ let opc = slice_raw v__614 (0:ii) (1:ii) in
+ let imm7 = slice_raw v__614 (10:ii) (16:ii) in
+ let Rt2 = slice_raw v__614 (17:ii) (21:ii) in
+ let Rn = slice_raw v__614 (22:ii) (26:ii) in
+ let Rt = slice_raw v__614 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let t = UInt_reg (reset_vector_start Rt) in
+ let t2 = UInt_reg (reset_vector_start Rt2) in
+ let acctype = AccType_STREAM in
+ let memop =
+ if bitU_to_bool (eq (match L with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then MemOp_LOAD
+ else MemOp_STORE in
+ (if bitU_to_bool (eq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let scale =
+ (2:ii) +
+ (UInt (reset_vector_start (set_vector_start_to_length (Vector [access opc (1:ii)] 0 false)))) in
+ let datasize = lsl' ((8:ii),scale) in
+ let offset =
+ LSL
+ (reset_vector_start (set_vector_start_to_length
+ (SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length imm7)))),
+ scale) in
+ return (Just (LoadStorePairNonTemp (wback,postindex,n,t,t2,acctype,memop,scale,datasize,reset_vector_start offset)))
+
+let sharedDecodeLoadStorePair (L, opc, imm7, Rn, Rt, Rt2, wback, postindex) =
+ let n = UInt_reg Rn in
+ let t = UInt_reg Rt in
+ let t2 = UInt_reg Rt2 in
+ let acctype = AccType_NORMAL in
+ let memop = if bitU_to_bool (eq (L, (1:ii))) then MemOp_LOAD else MemOp_STORE in
+ (if bitU_to_bool
+ ((eq_vec
+ (set_vector_start_to_length
+ (Vector [if bitU_to_bool (is_one L) then B1 else B0;access opc (0:ii)] 1 false),
+ set_vector_start_to_length (Vector [B0;B1] 1 false))) |.
+ (eq_vec
+ (set_vector_start_to_length opc,
+ set_vector_start_to_length (Vector [B1;B1] 1 false))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ let _signed = neq (match (access opc (0:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ let scale =
+ (2:ii) +
+ (UInt (reset_vector_start (set_vector_start_to_length (Vector [access opc (1:ii)] 0 false)))) in
+ let datasize = lsl' ((8:ii),scale) in
+ let offset =
+ LSL
+ (reset_vector_start (set_vector_start_to_length (SignExtend ((64:ii),reset_vector_start imm7))),
+ scale) in
+ return (Just (LoadStorePair (wback,postindex,n,t,t2,acctype,memop,_signed,datasize,reset_vector_start offset)))
+
+let decodeDataRegister machineCode =
+ match machineCode with
+ | ((Vector [_;_;_;B0;B1;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__484) ->
+ decodeLogicalShiftedRegister (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B0;B1;B0;B1;B1;_;_;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__497) ->
+ decodeAddSubtractShiftedRegister (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B0;B1;B0;B1;B1;_;_;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__510) ->
+ decodeAddSubtractExtendedRegister (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B1;B1;B0;B1;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__523) ->
+ return (decodeAddSubtractWithCarry
+ (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [_;_;_;B1;B1;B0;B1;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;B0;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__536) ->
+ return (decodeConditionalCompareRegister (reset_vector_start machineCode))
+ | ((Vector [_;_;_;B1;B1;B0;B1;B0;B0;B1;B0;_;_;_;_;_;_;_;_;_;B1;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__549) ->
+ return (decodeConditionalCompareImmediate (reset_vector_start machineCode))
+ | ((Vector [_;_;_;B1;B1;B0;B1;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__562) ->
+ return (decodeConditionalSelect (reset_vector_start machineCode))
+ | ((Vector [_;_;_;B1;B1;B0;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__575) ->
+ return (decodeData3Source (reset_vector_start machineCode))
+ | ((Vector [_;B0;_;B1;B1;B0;B1;B0;B1;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__588) ->
+ decodeData2Source (reset_vector_start machineCode)
+ | ((Vector [_;B1;_;B1;B1;B0;B1;B0;B1;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__601) ->
+ decodeData1Source (reset_vector_start machineCode)
+ end
+
+let ROR (x, shift) =
+ let result = set_vector_start_to_length (to_vec_dec (length x,(0:ii))) in
+ if bitU_to_bool (eq_range (shift, (0:ii)))
+ then set_vector_start_to_length x
+ else
+ let (result', _) =
+ match (ROR_C (reset_vector_start (set_vector_start_to_length x),shift)) with
+ | (v0v', v1v') -> (v0v',v1v')
+ end in
+ set_vector_start_to_length result'
+
+let wMemIFP = wMem'IFP
+
+let decodeLoadStoreRegisterPairOffset ((Vector [_;_;B1;B0;B1;B0;B0;B1;B0;L;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__479) =
+ let opc = slice_raw v__479 (0:ii) (1:ii) in
+ let imm7 = slice_raw v__479 (10:ii) (16:ii) in
+ let Rt2 = slice_raw v__479 (17:ii) (21:ii) in
+ let Rn = slice_raw v__479 (22:ii) (26:ii) in
+ let Rt = slice_raw v__479 (27:ii) (31:ii) in
+ let wback = B0 in
+ let postindex = B0 in
+ sharedDecodeLoadStorePair
+ (match L with | B0 -> (0:ii) | B1 -> (1:ii) end,
+ reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start_to_length imm7),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ reset_vector_start Rt2,
+ wback,
+ postindex)
+
+let decodeLoadStoreRegisterPairPostIndexed ((Vector [_;_;B1;B0;B1;B0;B0;B0;B1;L;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__474) =
+ let opc = slice_raw v__474 (0:ii) (1:ii) in
+ let imm7 = slice_raw v__474 (10:ii) (16:ii) in
+ let Rt2 = slice_raw v__474 (17:ii) (21:ii) in
+ let Rn = slice_raw v__474 (22:ii) (26:ii) in
+ let Rt = slice_raw v__474 (27:ii) (31:ii) in
+ let wback = B1 in
+ let postindex = B1 in
+ sharedDecodeLoadStorePair
+ (match L with | B0 -> (0:ii) | B1 -> (1:ii) end,
+ reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start_to_length imm7),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ reset_vector_start Rt2,
+ wback,
+ postindex)
+
+let decodeLoadStoreRegisterPairPreIndexed ((Vector [_;_;B1;B0;B1;B0;B0;B1;B1;L;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__469) =
+ let opc = slice_raw v__469 (0:ii) (1:ii) in
+ let imm7 = slice_raw v__469 (10:ii) (16:ii) in
+ let Rt2 = slice_raw v__469 (17:ii) (21:ii) in
+ let Rn = slice_raw v__469 (22:ii) (26:ii) in
+ let Rt = slice_raw v__469 (27:ii) (31:ii) in
+ let wback = B1 in
+ let postindex = B0 in
+ sharedDecodeLoadStorePair
+ (match L with | B0 -> (0:ii) | B1 -> (1:ii) end,
+ reset_vector_start (set_vector_start 1 opc),
+ reset_vector_start (set_vector_start_to_length imm7),
+ reset_vector_start Rn,
+ reset_vector_start Rt,
+ reset_vector_start Rt2,
+ wback,
+ postindex)
+
+let IsSecureBelowEL3 () =
+ if bitU_to_bool (HaveEL (reset_vector_start EL3))
+ then
+ read_reg_bitfield (SCR_GEN ()) "NS" >>= fun w__0 ->
+ return (eq (match w__0 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ else
+ return (if bitU_to_bool (HaveEL (reset_vector_start EL2))
+ then B0
+ else IMPLEMENTATION_DEFINED.IMPLEMENTATION_DEFINED_type_IsSecureBelowEL3)
+
+let AArch64_ResetSpecialRegisters () =
+ write_reg SP_EL0 (to_vec_dec ((64:ii),UNKNOWN)) >>
+ write_reg SP_EL1 (to_vec_dec ((64:ii),UNKNOWN)) >>
+ write_reg SPSR_EL1 (to_vec_dec ((32:ii),UNKNOWN)) >>
+ write_reg ELR_EL1 (to_vec_dec ((64:ii),UNKNOWN)) >>
+ (if bitU_to_bool (HaveEL (reset_vector_start EL2))
+ then
+ write_reg SP_EL2 (to_vec_dec ((64:ii),UNKNOWN)) >>
+ write_reg SPSR_EL2 (to_vec_dec ((32:ii),UNKNOWN)) >>
+ write_reg ELR_EL2 (to_vec_dec ((64:ii),UNKNOWN))
+ else return ()) >>
+ (if bitU_to_bool (HaveEL (reset_vector_start EL3))
+ then
+ write_reg SP_EL3 (to_vec_dec ((64:ii),UNKNOWN)) >>
+ write_reg SPSR_EL3 (to_vec_dec ((32:ii),UNKNOWN)) >>
+ write_reg ELR_EL3 (to_vec_dec ((64:ii),UNKNOWN))
+ else return ()) >>
+ let _ =
+ if bitU_to_bool (HaveAArch32EL (reset_vector_start EL1))
+ then
+ let SPSR_fiq = to_vec_dec ((32:ii),UNKNOWN) in
+ let SPSR_irq = to_vec_dec ((32:ii),UNKNOWN) in
+ let SPSR_abt = to_vec_dec ((32:ii),UNKNOWN) in
+ let SPSR_und = to_vec_dec ((32:ii),UNKNOWN) in
+ ()
+ else () in
+ let DLR_EL0 = to_vec_dec ((64:ii),UNKNOWN) in
+ let DSPSR_EL0 = to_vec_dec ((32:ii),UNKNOWN) in
+ return ()
+
+let DecodeBitMasks (M', immN, imms, immr, immediate) =
+ let M = length (reset_vector_start (set_vector_start_to_length (to_vec_dec (M',(0:ii))))) in
+ let levels = to_vec_dec ((6:ii),(0:ii)) in
+ let len =
+ match (HighestSetBit
+ (reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length (Vector [immN] 0 false)) ^^
+ (set_vector_start_to_length
+ (NOT (reset_vector_start (set_vector_start_to_length imms)))))))) with
+ | Nothing ->
+ let _ = assert' B0 (Just "DecodeBitMasks: HighestSetBit returned None") in
+ (0:ii)
+ | Just (c) -> c
+ end in
+ (if bitU_to_bool (lt (len, (1:ii)))
+ then ReservedValue ()
+ else return ()) >>
+ let _ = assert' (gteq (M, lsl' ((1:ii),len))) (Nothing) in
+ let levels =
+ ZeroExtend
+ ((6:ii),
+ reset_vector_start (set_vector_start_to_length
+ (duplicate_bits (set_vector_start_to_length (Vector [B1] 0 false), len)))) in
+ (if bitU_to_bool
+ (immediate &.
+ (eq_vec
+ (set_vector_start_to_length
+ (bitwise_and (set_vector_start_to_length imms, set_vector_start_to_length levels)),
+ set_vector_start_to_length levels)))
+ then ReservedValue ()
+ else return ()) >>
+ let S =
+ set_vector_start 5
+ (bitwise_and (set_vector_start_to_length imms, set_vector_start_to_length levels)) in
+ let R =
+ set_vector_start 5
+ (bitwise_and (set_vector_start_to_length immr, set_vector_start_to_length levels)) in
+ let diff =
+ set_vector_start 5
+ (minus_VVV
+ (reset_vector_start (set_vector_start_to_length S))
+ (reset_vector_start (set_vector_start_to_length R))) in
+ let esize = lsl' ((1:ii),len) in
+ let d = set_vector_start 5 (slice diff (len - (1:ii)) (0:ii)) in
+ let welem =
+ set_vector_start_to_length
+ (ZeroExtend
+ (esize,
+ reset_vector_start (set_vector_start_to_length
+ (duplicate_bits
+ (set_vector_start_to_length (Vector [B1] 0 false),
+ add_VII (reset_vector_start (set_vector_start_to_length S)) (1:ii)))))) in
+ let telem =
+ set_vector_start_to_length
+ (ZeroExtend
+ (esize,
+ reset_vector_start (set_vector_start_to_length
+ (duplicate_bits
+ (set_vector_start_to_length (Vector [B1] 0 false),
+ add_VII (reset_vector_start (set_vector_start_to_length d)) (1:ii)))))) in
+ let wmask =
+ Replicate
+ (M',
+ reset_vector_start (set_vector_start_to_length
+ (ROR
+ (reset_vector_start (set_vector_start_to_length welem),
+ unsigned (reset_vector_start R))))) in
+ let tmask = Replicate (M',reset_vector_start (set_vector_start_to_length telem)) in
+ return (set_vector_start_to_length wmask,set_vector_start_to_length tmask)
+
+let AArch64_TranslateAddress (vaddress, acctype, iswrite, wasaligned, size) =
+ let _ =
+ info
+ "Translation is not implemented, return same address as the virtual (no fault, normal, shareable, non-secure)." in
+ <| AddressDescriptor_fault = (AArch64_NoFault ());
+ AddressDescriptor_memattrs =
+ (<| MemoryAttributes_type' = MemType_Normal;
+ MemoryAttributes_shareable = B1 |>);
+ AddressDescriptor_paddress =
+ (<| FullAddress_physicaladdress = vaddress;
+ FullAddress_NS = B1 |>) |>
+
+let ExtendReg (N', _reg, type', shift) =
+ rX (N',_reg) >>= fun w__0 ->
+ let _val = set_vector_start_to_length w__0 in
+ let _unsigned = B0 in
+ let len = (0:ii) in
+ let (_unsigned, len) =
+ match type' with
+ | ExtendType_SXTB ->
+ let _unsigned = B0 in
+ let len = (8:ii) in
+ (_unsigned,len)
+ | ExtendType_SXTH ->
+ let _unsigned = B0 in
+ let len = (16:ii) in
+ (_unsigned,len)
+ | ExtendType_SXTW ->
+ let _unsigned = B0 in
+ let len = (32:ii) in
+ (_unsigned,len)
+ | ExtendType_SXTX ->
+ let _unsigned = B0 in
+ let len = (64:ii) in
+ (_unsigned,len)
+ | ExtendType_UXTB ->
+ let _unsigned = B1 in
+ let len = (8:ii) in
+ (_unsigned,len)
+ | ExtendType_UXTH ->
+ let _unsigned = B1 in
+ let len = (16:ii) in
+ (_unsigned,len)
+ | ExtendType_UXTW ->
+ let _unsigned = B1 in
+ let len = (32:ii) in
+ (_unsigned,len)
+ | ExtendType_UXTX ->
+ let _unsigned = B1 in
+ let len = (64:ii) in
+ (_unsigned,len)
+ end in
+ let len = uMin (len,(length (reset_vector_start (set_vector_start_to_length _val))) - shift) in
+ return (set_vector_start_to_length
+ (Extend
+ (length _val,
+ reset_vector_start (set_vector_start_to_length
+ ((set_vector_start_to_length
+ (slice (set_vector_start_to_length _val) (len - (1:ii)) (0:ii))) ^^
+ (set_vector_start_to_length (set_vector_start_to_length (Zeros shift))))),
+ _unsigned)))
+
+let ShiftReg (N', _reg, type', amount) =
+ rX (N',_reg) >>= fun w__0 ->
+ let result = set_vector_start_to_length w__0 in
+ let result =
+ match type' with
+ | ShiftType_LSL ->
+ set_vector_start_to_length
+ (LSL (reset_vector_start (set_vector_start_to_length result),amount))
+ | ShiftType_LSR ->
+ set_vector_start_to_length
+ (LSR (reset_vector_start (set_vector_start_to_length result),amount))
+ | ShiftType_ASR ->
+ set_vector_start_to_length
+ (ASR (reset_vector_start (set_vector_start_to_length result),amount))
+ | ShiftType_ROR ->
+ set_vector_start_to_length
+ (ROR (reset_vector_start (set_vector_start_to_length result),amount))
+ end in
+ return (set_vector_start_to_length result)
+
+let initial_analysis instr =
+ let iR = [] in
+ let oR = [] in
+ let aR = [] in
+ let Nias = [NIAFP_successor] in
+ let Dia = DIAFP_none in
+ let ik = IK_simple in
+ match instr with
+ | TMStart (t) ->
+ let iR = TxNestingLevelfp :: TXIDR_EL0_DEPTHfp :: iR in
+ let oR = TxNestingLevelfp :: (oR ++ (xFP t)) in
+ let ik = IK_trans Transaction_start in
+ return (aR,Nias,iR,oR,ik)
+ | TMCommit ->
+ let iR = TxNestingLevelfp :: iR in
+ let oR = TxNestingLevelfp :: oR in
+ let ik = IK_trans Transaction_commit in
+ return (aR,Nias,iR,oR,ik)
+ | TMAbort (retry,reason) ->
+ let iR = TxNestingLevelfp :: iR in
+ let ik = IK_trans Transaction_abort in
+ return (aR,Nias,iR,oR,ik)
+ | TMTest ->
+ let iR = TxNestingLevelfp :: iR in
+ let oR = (RFull "NZCV") :: oR in
+ return (aR,Nias,iR,oR,ik)
+ | CompareAndBranch (t,datasize,iszero,offset) ->
+ let iR = iR ++ (xFP t) in
+ let (i, o) = match (BranchToFP (iR,oR)) with | (v0v', v1v') -> (v0v',v1v') end in
+ let iR = i in
+ let oR = o in
+ rPC () >>= fun w__0 ->
+ let nia' =
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__0))
+ (reset_vector_start (set_vector_start_to_length offset))) in
+ let Nias = [NIAFP_concrete_address (reset_vector_start nia');NIAFP_successor] in
+ let ik = IK_branch in
+ return (aR,Nias,iR,oR,ik)
+ | BranchConditional (offset,condition) ->
+ let iR = iR ++ (ConditionHoldsIFP (reset_vector_start condition)) in
+ let (i, o) = match (BranchToFP (iR,oR)) with | (v2v', v3v') -> (v2v',v3v') end in
+ let iR = i in
+ let oR = o in
+ rPC () >>= fun w__1 ->
+ let Nias =
+ [NIAFP_concrete_address (reset_vector_start (set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__1))
+ (reset_vector_start (set_vector_start_to_length offset)))));NIAFP_successor] in
+ let ik = IK_branch in
+ return (aR,Nias,iR,oR,ik)
+ | GenerateExceptionEL1 (imm) ->
+ not_implemented "GenerateExceptionEL1" >>
+ return (aR,Nias,iR,oR,ik)
+ | GenerateExceptionEL2 (imm) ->
+ not_implemented "GenerateExceptionEL2" >>
+ return (aR,Nias,iR,oR,ik)
+ | GenerateExceptionEL3 (imm) ->
+ not_implemented "GenerateExceptionEL3" >>
+ return (aR,Nias,iR,oR,ik)
+ | DebugBreakpoint (comment) ->
+ not_implemented "DebugBreakpoint" >>
+ return (aR,Nias,iR,oR,ik)
+ | ExternalDebugBreakpoint ->
+ not_implemented "ExternalDebugBreakpoint" >>
+ return (aR,Nias,iR,oR,ik)
+ | DebugSwitchToExceptionLevel (target_level) ->
+ not_implemented "DebugSwitchToExceptionLevel" >>
+ return (aR,Nias,iR,oR,ik)
+ | MoveSystemImmediate (operand,field') ->
+ let (iR, oR) =
+ match field' with
+ | PSTATEField_SP ->
+ let oR = PSTATE_SPfp :: oR in
+ (iR,oR)
+ | PSTATEField_DAIFSet ->
+ let iR = iR ++ [PSTATE_Ffp;PSTATE_Ifp;PSTATE_Afp;PSTATE_Dfp] in
+ let oR = oR ++ [PSTATE_Ffp;PSTATE_Ifp;PSTATE_Afp;PSTATE_Dfp] in
+ (iR,oR)
+ | PSTATEField_DAIFClr ->
+ let iR = iR ++ [PSTATE_Ffp;PSTATE_Ifp;PSTATE_Afp;PSTATE_Dfp] in
+ let oR = oR ++ [PSTATE_Ffp;PSTATE_Ifp;PSTATE_Afp;PSTATE_Dfp] in
+ (iR,oR)
+ end in
+ return (aR,Nias,iR,oR,ik)
+ | Hint (op) ->
+ match op with
+ | SystemHintOp_YIELD -> return ()
+ | SystemHintOp_WFE ->
+ EventRegistered () >>= fun w__2 ->
+ if bitU_to_bool w__2
+ then return ()
+ else not_implemented "Hint(SystemHintOp_WFE);"
+ | SystemHintOp_WFI -> not_implemented "Hint(SystemHintOp_WFI);"
+ | SystemHintOp_SEV -> return ()
+ | SystemHintOp_SEVL -> not_implemented "Hint(SystemHintOp_SEVL);"
+ | _ -> return ()
+ end >>
+ return (aR,Nias,iR,oR,ik)
+ | ClearExclusiveMonitor (imm) -> return (aR,Nias,iR,oR,ik)
+ | Barrier (op,domain,types) ->
+ let ik =
+ match op with
+ | MemBarrierOp_DSB ->
+ match types with
+ | MBReqTypes_Reads -> IK_barrier Barrier_DSB_LD
+ | MBReqTypes_Writes -> IK_barrier Barrier_DSB_ST
+ | MBReqTypes_All -> IK_barrier Barrier_DSB
+ end
+ | MemBarrierOp_DMB ->
+ match types with
+ | MBReqTypes_Reads -> IK_barrier Barrier_DMB_LD
+ | MBReqTypes_Writes -> IK_barrier Barrier_DMB_ST
+ | MBReqTypes_All -> IK_barrier Barrier_DMB
+ end
+ | MemBarrierOp_ISB -> IK_barrier Barrier_ISB
+ end in
+ return (aR,Nias,iR,oR,ik)
+ | System (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result) ->
+ let oR = oR ++ (xFP t) in
+ not_implemented "System" >>
+ return (aR,Nias,iR,oR,ik)
+ | MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read) ->
+ let (oR, iR) =
+ if bitU_to_bool read
+ then
+ let oR = oR ++ (xFP t) in
+ let iR =
+ match toNaturalFiveTup (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2) with
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (0:nn)) -> (RFull "NZCV") :: iR
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (1:nn)) -> (RFull "DAIF") :: iR
+ | ((3:nn), (3:nn), (13:nn), (0:nn), (2:nn)) -> (RFull "TPIDR_EL0") :: iR
+ end in
+ (oR,iR)
+ else
+ let iR = iR ++ (xFP t) in
+ let oR =
+ match toNaturalFiveTup (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2) with
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (0:nn)) -> (RFull "NZCV") :: oR
+ | ((3:nn), (3:nn), (4:nn), (2:nn), (1:nn)) -> (RFull "DAIF") :: oR
+ | ((3:nn), (3:nn), (13:nn), (0:nn), (2:nn)) -> (RFull "TPIDR_EL0") :: oR
+ end in
+ (oR,iR) in
+ return (aR,Nias,iR,oR,ik)
+ | ImplementationDefinedTestBeginEnd (isEnd) -> return (aR,Nias,iR,oR,ik)
+ | ImplementationDefinedStopFetching -> return (aR,Nias,iR,oR,ik)
+ | ImplementationDefinedThreadStart -> return (aR,Nias,iR,oR,ik)
+ | TestBitAndBranch (t,datasize,bit_pos,bit_val,offset) ->
+ let iR = (xFP t) ++ iR in
+ let (i, o) = match (BranchToFP (iR,oR)) with | (v4v', v5v') -> (v4v',v5v') end in
+ let iR = i in
+ let oR = o in
+ rPC () >>= fun w__3 ->
+ let Nias =
+ [NIAFP_concrete_address (reset_vector_start (set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__3))
+ (reset_vector_start (set_vector_start_to_length offset)))));NIAFP_successor] in
+ let ik = IK_branch in
+ return (aR,Nias,iR,oR,ik)
+ | BranchImmediate (branch_type,offset) ->
+ let (iR, oR) =
+ if bitU_to_bool (eq (branch_type, BranchType_CALL))
+ then
+ let iR = _PCfp :: iR in
+ let oR = (xFP (30:ii)) ++ oR in
+ (iR,oR)
+ else (iR,oR) in
+ let (i, o) = match (BranchToFP (iR,oR)) with | (v6v', v7v') -> (v6v',v7v') end in
+ let iR = i in
+ let oR = o in
+ rPC () >>= fun w__4 ->
+ let Nias =
+ [NIAFP_concrete_address (reset_vector_start (set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__4))
+ (reset_vector_start (set_vector_start_to_length offset)))))] in
+ let ik = IK_branch in
+ return (aR,Nias,iR,oR,ik)
+ | BranchRegister (n,branch_type) ->
+ let iR = iR ++ (xFP n) in
+ let (iR, oR) =
+ if bitU_to_bool (eq (branch_type, BranchType_CALL))
+ then
+ let iR = _PCfp :: iR in
+ let oR = (xFP (30:ii)) ++ oR in
+ (iR,oR)
+ else (iR,oR) in
+ let (i, o) = match (BranchToFP (iR,oR)) with | (v8v', v9v') -> (v8v',v9v') end in
+ let iR = i in
+ let oR = o in
+ let Nias =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then [NIAFP_concrete_address (reset_vector_start (to_vec_dec ((64:ii),(0:ii))))]
+ else [NIAFP_indirect_address] in
+ let ik = IK_branch in
+ return (aR,Nias,iR,oR,ik)
+ | ExceptionReturn ->
+ not_implemented "ExceptionReturn" >>
+ return (aR,Nias,iR,oR,ik)
+ | DebugRestorePState ->
+ not_implemented "DebugRestorePState" >>
+ return (aR,Nias,iR,oR,ik)
+ | LoadLiteral (t,memop,_signed,size,offset,datasize) ->
+ let iR = _PCfp :: iR in
+ let oR = (xFP t) ++ oR in
+ let aR = _PCfp :: aR in
+ let (aR, ik) =
+ match memop with
+ | MemOp_LOAD ->
+ let ik = IK_mem_read Read_plain in
+ (aR,ik)
+ | MemOp_PREFETCH ->
+ let ik = IK_simple in
+ let aR = [] in
+ (aR,ik)
+ end in
+ return (aR,Nias,iR,oR,ik)
+ | LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize) ->
+ let rt_unknown = B0 in
+ let rn_unknown = B0 in
+ let (iR, aR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let iR = CheckSPAlignmentIFP ++ iR in
+ let iR = rSPIFP ++ iR in
+ let aR = rSPIFP ++ aR in
+ (iR,aR)
+ else
+ let (iR, aR) =
+ if bitU_to_bool rn_unknown
+ then (iR,aR)
+ else
+ let iR = (xFP n) ++ iR in
+ let aR = (xFP n) ++ aR in
+ (iR,aR) in
+ (iR,aR) in
+ match memop with
+ | MemOp_STORE ->
+ let iR =
+ if bitU_to_bool rt_unknown
+ then iR
+ else if bitU_to_bool pair then (xFP t) ++ ((xFP t2) ++ iR) else (xFP t) ++ iR in
+ (if bitU_to_bool excl
+ then
+ let iR = iR ++ wMemIFP in
+ let oR = (xFP s) ++ oR in
+ wmem_kind (acctype,B1) >>= fun w__5 ->
+ let ik = w__5 in
+ return (iR,oR,ik)
+ else
+ let iR = iR ++ wMemIFP in
+ wmem_kind (acctype,B0) >>= fun w__6 ->
+ let ik = w__6 in
+ return (iR,oR,ik)) >>= fun (iR, oR, ik) ->
+ return (aR,iR,oR,ik)
+ | MemOp_LOAD ->
+ (if bitU_to_bool pair
+ then
+ let (iR, oR) =
+ if bitU_to_bool rt_unknown
+ then
+ let oR = (xFP t) ++ oR in
+ (iR,oR)
+ else
+ let (iR, oR) =
+ if bitU_to_bool (eq_range (elsize, (32:ii)))
+ then
+ let iR = iR ++ BigEndianIFP in
+ let oR = (xFP t) ++ ((xFP t2) ++ oR) in
+ (iR,oR)
+ else
+ let oR = (xFP t) ++ ((xFP t2) ++ oR) in
+ (iR,oR) in
+ (iR,oR) in
+ rmem_kind (acctype,B1) >>= fun w__7 ->
+ let ik = w__7 in
+ return (oR,iR,ik)
+ else
+ let oR = (xFP t) ++ oR in
+ rmem_kind (acctype,excl) >>= fun w__8 ->
+ let ik = w__8 in
+ return (oR,iR,ik)) >>= fun (oR, iR, ik) ->
+ return (aR,iR,oR,ik)
+ | MemOp_PREFETCH ->
+ let aR = [] in
+ return (aR,iR,oR,ik)
+ end >>= fun (aR, iR, oR, ik) ->
+ return (aR,Nias,iR,oR,ik)
+ | LoadStorePairNonTemp (wback,postindex,n,t,t2,acctype,memop,scale,datasize,offset) ->
+ let rt_unknown = B0 in
+ let (iR, aR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let iR = CheckSPAlignmentIFP ++ iR in
+ let iR = rSPIFP ++ iR in
+ let aR = rSPIFP ++ aR in
+ (iR,aR)
+ else
+ let iR = (xFP n) ++ iR in
+ let aR = (xFP n) ++ aR in
+ (iR,aR) in
+ let (iR, oR) =
+ if bitU_to_bool wback
+ then
+ let (iR, oR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let (i, o) = match wSPFP with | (v10v', v11v') -> (v10v',v11v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP n) ++ oR in
+ (iR,oR) in
+ (iR,oR)
+ else (iR,oR) in
+ match memop with
+ | MemOp_STORE ->
+ let iR = if bitU_to_bool (rt_unknown &. (eq_range (t, n))) then iR else (xFP t) ++ iR in
+ let iR = if bitU_to_bool (rt_unknown &. (eq_range (t2, n))) then iR else (xFP t2) ++ iR in
+ let iR = wMemIFP ++ iR in
+ wmem_kind (acctype,B0) >>= fun w__9 ->
+ let ik = w__9 in
+ return (oR,iR,ik)
+ | MemOp_LOAD ->
+ let oR = (xFP t) ++ ((xFP t2) ++ oR) in
+ rmem_kind (acctype,B0) >>= fun w__10 ->
+ let ik = w__10 in
+ return (oR,iR,ik)
+ end >>= fun (oR, iR, ik) ->
+ return (aR,Nias,iR,oR,ik)
+ | LoadImmediate (n,t,acctype,memop,_signed,wback,postindex,offset,regsize,datasize) ->
+ let wb_unknown = B0 in
+ let rt_unknown = B0 in
+ let (iR, aR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let iR = CheckSPAlignmentIFP ++ iR in
+ let iR = rSPIFP ++ iR in
+ let aR = rSPIFP ++ aR in
+ (iR,aR)
+ else
+ let iR = (xFP n) ++ iR in
+ let aR = (xFP n) ++ aR in
+ (iR,aR) in
+ let (iR, oR) =
+ if bitU_to_bool wback
+ then
+ let (iR, oR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let (i, o) = match wSPFP with | (v12v', v13v') -> (v12v',v13v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP n) ++ oR in
+ (iR,oR) in
+ (iR,oR)
+ else (iR,oR) in
+ match memop with
+ | MemOp_STORE ->
+ let iR = if bitU_to_bool rt_unknown then iR else (xFP t) ++ iR in
+ let iR = wMemIFP ++ iR in
+ wmem_kind (acctype,B0) >>= fun w__11 ->
+ let ik = w__11 in
+ return (aR,oR,iR,ik)
+ | MemOp_LOAD ->
+ let oR = (xFP t) ++ oR in
+ rmem_kind (acctype,B0) >>= fun w__12 ->
+ let ik = w__12 in
+ return (aR,oR,iR,ik)
+ | MemOp_PREFETCH ->
+ let aR = [] in
+ return (aR,oR,iR,ik)
+ end >>= fun (aR, oR, iR, ik) ->
+ return (aR,Nias,iR,oR,ik)
+ | LoadRegister (n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize) ->
+ let iR = (xFP m) ++ iR in
+ let aR = (xFP m) ++ aR in
+ let wb_unknown = B0 in
+ let rt_unknown = B0 in
+ let (iR, aR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let iR = CheckSPAlignmentIFP ++ iR in
+ let iR = rSPIFP ++ iR in
+ let aR = rSPIFP ++ aR in
+ (iR,aR)
+ else
+ let iR = (xFP n) ++ iR in
+ let aR = (xFP n) ++ aR in
+ (iR,aR) in
+ let (iR, oR) =
+ if bitU_to_bool wback
+ then
+ let (iR, oR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let (i, o) = match wSPFP with | (v14v', v15v') -> (v14v',v15v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP n) ++ oR in
+ (iR,oR) in
+ (iR,oR)
+ else (iR,oR) in
+ match memop with
+ | MemOp_STORE ->
+ let iR = if bitU_to_bool rt_unknown then iR else (xFP t) ++ iR in
+ let iR = wMemIFP ++ iR in
+ wmem_kind (acctype,B0) >>= fun w__13 ->
+ let ik = w__13 in
+ return (aR,oR,iR,ik)
+ | MemOp_LOAD ->
+ let oR = (xFP t) ++ oR in
+ rmem_kind (acctype,B0) >>= fun w__14 ->
+ let ik = w__14 in
+ return (aR,oR,iR,ik)
+ | MemOp_PREFETCH ->
+ let aR = [] in
+ return (aR,oR,iR,ik)
+ end >>= fun (aR, oR, iR, ik) ->
+ return (aR,Nias,iR,oR,ik)
+ | LoadStorePair (wback,postindex,n,t,t2,acctype,memop,_signed,datasize,offset) ->
+ let rt_unknown = B0 in
+ let wb_unknown = B0 in
+ let (iR, aR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let iR = CheckSPAlignmentIFP ++ iR in
+ let iR = rSPIFP ++ iR in
+ let aR = rSPIFP ++ aR in
+ (iR,aR)
+ else
+ let iR = (xFP n) ++ iR in
+ let aR = (xFP n) ++ aR in
+ (iR,aR) in
+ let (iR, oR) =
+ if bitU_to_bool wback
+ then
+ let (iR, oR) =
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ let (i, o) = match wSPFP with | (v16v', v17v') -> (v16v',v17v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP n) ++ oR in
+ (iR,oR) in
+ (iR,oR)
+ else (iR,oR) in
+ match memop with
+ | MemOp_STORE ->
+ let iR = if bitU_to_bool (rt_unknown &. (eq_range (t, n))) then iR else (xFP t) ++ iR in
+ let iR = if bitU_to_bool (rt_unknown &. (eq_range (t2, n))) then iR else (xFP t2) ++ iR in
+ let iR = wMemIFP ++ iR in
+ wmem_kind (acctype,B0) >>= fun w__15 ->
+ let ik = w__15 in
+ return (oR,iR,ik)
+ | MemOp_LOAD ->
+ let oR = (xFP t) ++ oR in
+ let oR = (xFP t2) ++ oR in
+ rmem_kind (acctype,B0) >>= fun w__16 ->
+ let ik = w__16 in
+ return (oR,iR,ik)
+ end >>= fun (oR, iR, ik) ->
+ return (aR,Nias,iR,oR,ik)
+ | AddSubImmediate (d,n,datasize,sub_op,setflags,imm) ->
+ let iR = (if bitU_to_bool (eq_range (n, (31:ii))) then rSPIFP else xFP n) ++ iR in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let (iR, oR) =
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then
+ let (i, o) = match wSPFP with | (v18v', v19v') -> (v18v',v19v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP d) ++ oR in
+ (iR,oR) in
+ return (aR,Nias,iR,oR,ik)
+ | BitfieldMove (d,n,datasize,inzero,extend,R,S,wmask,tmask) ->
+ let iR = if bitU_to_bool inzero then iR else (xFP d) ++ iR in
+ let iR = (xFP n) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | ExtractRegister (d,n,m,datasize,lsb) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | LogicalImmediate (d,n,datasize,setflags,op,imm) ->
+ let iR = (xFP n) ++ iR in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let (iR, oR) =
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then
+ let (i, o) = match wSPFP with | (v20v', v21v') -> (v20v',v21v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP d) ++ oR in
+ (iR,oR) in
+ return (aR,Nias,iR,oR,ik)
+ | MoveWide (d,datasize,imm,pos,opcode) ->
+ let iR = if bitU_to_bool (eq (opcode, MoveWideOp_K)) then (xFP d) ++ iR else iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | Address (d,page,imm) ->
+ let iR = _PCfp :: iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift) ->
+ let iR = (if bitU_to_bool (eq_range (n, (31:ii))) then rSPIFP else xFP n) ++ iR in
+ let iR = (xFP m) ++ iR in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let (iR, oR) =
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then
+ let (i, o) = match wSPFP with | (v22v', v23v') -> (v22v',v23v') end in
+ let iR = i ++ iR in
+ let oR = o ++ oR in
+ (iR,oR)
+ else
+ let oR = (xFP d) ++ oR in
+ (iR,oR) in
+ return (aR,Nias,iR,oR,ik)
+ | AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | AddSubCarry (d,n,m,datasize,sub_op,setflags) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let iR = PSTATE_Cfp :: iR in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm) ->
+ let iR = (xFP n) ++ iR in
+ let iR = (ConditionHoldsIFP (reset_vector_start condition)) ++ iR in
+ let oR = NZCVfp ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let iR = (ConditionHoldsIFP (reset_vector_start condition)) ++ iR in
+ let oR = NZCVfp ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let iR = (ConditionHoldsIFP (reset_vector_start condition)) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | Reverse (d,n,datasize,op) ->
+ let iR = (xFP n) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | CountLeading (d,n,datasize,opcode) ->
+ let iR = (xFP n) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | Division (d,n,m,datasize,_unsigned) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | Shift (d,n,m,datasize,shift_type) ->
+ let iR = (xFP m) ++ iR in
+ let iR = (xFP n) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | CRC (d,n,m,size,crc32c) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op) ->
+ let iR = (xFP n) ++ iR in
+ let iR = (xFP m) ++ iR in
+ let iR = (xFP a) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,_unsigned) ->
+ let iR = (xFP n) ++ iR in
+ let iR = (xFP m) ++ iR in
+ let iR = (xFP a) ++ iR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | MultiplyHigh (d,n,m,a,destsize,datasize,_unsigned) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ | LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert) ->
+ let iR = (xFP n) ++ ((xFP m) ++ iR) in
+ let oR = if bitU_to_bool setflags then NZCVfp ++ oR else oR in
+ let oR = (xFP d) ++ oR in
+ return (aR,Nias,iR,oR,ik)
+ end >>= fun (aR, Nias, iR, oR, ik) ->
+ return (iR,oR,aR,Nias,Dia,ik)
+
+let decodeBranchesExceptionSystem machineCode =
+ match machineCode with
+ | ((Vector [_;B0;B0;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__392) ->
+ return (decodeUnconditionalBranchImmediate
+ (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [_;B0;B1;B1;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__403) ->
+ return (decodeCompareBranchImmediate
+ (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [_;B0;B1;B1;B0;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__414) ->
+ return (decodeTestBranchImmediate (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [B0;B1;B0;B1;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__425) ->
+ return (decodeConditionalBranchImmediate
+ (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__436) ->
+ decodeExceptionGeneration (reset_vector_start machineCode)
+ | ((Vector [B1;B1;B0;B1;B0;B1;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__447) ->
+ decodeSystemImplementationDefined (reset_vector_start machineCode)
+ | ((Vector [B1;B1;B0;B1;B0;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__458) ->
+ decodeUnconditionalBranchRegister (reset_vector_start machineCode)
+ end
+
+let IsSecure () =
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ if bitU_to_bool
+ ((HaveEL (reset_vector_start EL3)) &.
+ ((~(UsingAArch32 ())) &.
+ (eq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL3))))
+ then return B1
+ else
+ read_reg PSTATE_M >>= fun w__1 ->
+ if bitU_to_bool
+ ((HaveEL (reset_vector_start EL3)) &.
+ ((UsingAArch32 ()) &. (eq_vec (w__1, set_vector_start_to_length M32_Monitor))))
+ then return B1
+ else IsSecureBelowEL3 ()
+
+let decodeLogicalImmediate ((Vector [sf;_;_;B1;B0;B0;B1;B0;B0;N;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__388) =
+ let opc = slice_raw v__388 (1:ii) (2:ii) in
+ let immr = slice_raw v__388 (10:ii) (15:ii) in
+ let imms = slice_raw v__388 (16:ii) (21:ii) in
+ let Rn = slice_raw v__388 (22:ii) (26:ii) in
+ let Rd = slice_raw v__388 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let setflags = B0 in
+ let op = LogicalOp_AND in
+ let (op, setflags) =
+ match opc with
+ | Vector [B0;B0] _ _ ->
+ let op = LogicalOp_AND in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B0;B1] _ _ ->
+ let op = LogicalOp_ORR in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B1;B0] _ _ ->
+ let op = LogicalOp_EOR in
+ let setflags = B0 in
+ (op,setflags)
+ | Vector [B1;B1] _ _ ->
+ let op = LogicalOp_AND in
+ let setflags = B1 in
+ (op,setflags)
+ end in
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ (neq (match N with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))))
+ then ReservedValue ()
+ else return ()) >>
+ DecodeBitMasks (datasize,N,reset_vector_start imms,reset_vector_start immr,B1) >>= fun w__0 ->
+ let (imm, _) = match w__0 with | (v0v', v1v') -> (v0v',v1v') end in
+ return (Just (LogicalImmediate (d,n,datasize,setflags,op,reset_vector_start (set_vector_start_to_length
+ imm))))
+
+let decodeBitfield ((Vector [sf;_;_;B1;B0;B0;B1;B1;B0;N;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__384) =
+ let opc = slice_raw v__384 (1:ii) (2:ii) in
+ let immr = slice_raw v__384 (10:ii) (15:ii) in
+ let imms = slice_raw v__384 (16:ii) (21:ii) in
+ let Rn = slice_raw v__384 (22:ii) (26:ii) in
+ let Rd = slice_raw v__384 (27:ii) (31:ii) in
+ let d = UInt_reg (reset_vector_start Rd) in
+ let n = UInt_reg (reset_vector_start Rn) in
+ let datasize =
+ if bitU_to_bool (eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then (64:ii)
+ else (32:ii) in
+ let inzero = B0 in
+ let extend = B0 in
+ let R = (0:ii) in
+ let S = (0:ii) in
+ match opc with
+ | Vector [B0;B0] _ _ ->
+ let inzero = B1 in
+ let extend = B1 in
+ return (inzero,extend)
+ | Vector [B0;B1] _ _ ->
+ let inzero = B0 in
+ let extend = B0 in
+ return (inzero,extend)
+ | Vector [B1;B0] _ _ ->
+ let inzero = B1 in
+ let extend = B0 in
+ return (inzero,extend)
+ | Vector [B1;B1] _ _ ->
+ UnallocatedEncoding () >>
+ return (inzero,extend)
+ end >>= fun (inzero, extend) ->
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))) &.
+ (neq (match N with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))
+ then ReservedValue ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (match sf with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) &.
+ ((neq (match N with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) |.
+ ((neq (match (access immr (5:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))) |.
+ (neq (match (access imms (5:ii)) with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii))))))
+ then ReservedValue ()
+ else return ()) >>
+ let R = UInt (reset_vector_start (set_vector_start_to_length immr)) in
+ let S = UInt (reset_vector_start (set_vector_start_to_length imms)) in
+ DecodeBitMasks (datasize,N,reset_vector_start imms,reset_vector_start immr,B0) >>= fun (wmask, tmask) ->
+ return (Just (BitfieldMove (d,n,datasize,inzero,extend,R,S,reset_vector_start (set_vector_start_to_length
+ wmask),reset_vector_start (set_vector_start_to_length tmask))))
+
+let AArch64_SetExclusiveMonitors (address, size) =
+ let acctype = AccType_ATOMIC in
+ let iswrite = B0 in
+ let aligned =
+ neq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),size))) in
+ let memaddrdesc =
+ AArch64_TranslateAddress (reset_vector_start address,acctype,iswrite,aligned,size) in
+ if bitU_to_bool (IsFault memaddrdesc)
+ then ()
+ else
+ let _ =
+ if bitU_to_bool memaddrdesc.AddressDescriptor_memattrs.MemoryAttributes_shareable
+ then MarkExclusiveGlobal (memaddrdesc.AddressDescriptor_paddress,ProcessorID (),size)
+ else () in
+ let _ = MarkExclusiveLocal (memaddrdesc.AddressDescriptor_paddress,ProcessorID (),size) in
+ AArch64_MarkExclusiveVA (reset_vector_start address,ProcessorID (),size)
+
+let AArch64_TakeReset cold_reset =
+ let _ = assert' (~(HighestELUsingAArch32 ())) (Nothing) in
+ write_reg PSTATE_nRW (to_vec_dec ((1:ii),(0:ii))) >>
+ (if bitU_to_bool (HaveEL (reset_vector_start EL3))
+ then
+ write_reg_field CurrentEL "EL" (set_vector_start 3 EL3) >>
+ write_reg_bitfield SCR_EL3 "NS" B0
+ else
+ if bitU_to_bool (HaveEL (reset_vector_start EL2))
+ then write_reg_field CurrentEL "EL" (set_vector_start 3 EL2)
+ else write_reg_field CurrentEL "EL" (set_vector_start 3 EL1)) >>
+ let _ = AArch64_ResetControlRegisters cold_reset in
+ write_reg_bitfield SPSel "SP" B0 >>
+ wPSTATE_DAIF ((),reset_vector_start (Vector [B1;B1;B1;B1] 3 false)) >>
+ let PSTATE_SS = (0:ii) in
+ let PSTATE_IL = (0:ii) in
+ AArch64_ResetGeneralRegisters () >>
+ AArch64_ResetSIMDFPRegisters () >>
+ AArch64_ResetSpecialRegisters () >>
+ ResetExternalDebugRegisters cold_reset >>
+ let rv = to_vec_dec ((64:ii),(0:ii)) in
+ (if bitU_to_bool (HaveEL (reset_vector_start EL3))
+ then read_reg RVBAR_EL3
+ else
+ if bitU_to_bool (HaveEL (reset_vector_start EL2))
+ then read_reg RVBAR_EL2
+ else read_reg RVBAR_EL1) >>= fun rv ->
+ PAMax () >>= fun w__3 ->
+ let _ =
+ assert' ((IsZero
+ (reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length rv) (63:ii) w__3)))) &.
+ (IsZero
+ (reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length rv) (1:ii) (0:ii)))))) (Just "reset vector not correctly aligned") in
+ BranchTo (reset_vector_start (set_vector_start_to_length rv),BranchType_UNKNOWN)
+
+let AArch64_rMemSingle (read_buffer, address, size, acctype, wasaligned, exclusive) =
+ let _ =
+ assert' (eq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),size)))) (Nothing) in
+ let value = set_vector_start_to_length (to_vec_dec (size * (8:ii),(0:ii))) in
+ let iswrite = B0 in
+ let memaddrdesc =
+ AArch64_TranslateAddress (reset_vector_start address,acctype,iswrite,wasaligned,size) in
+ (if bitU_to_bool (IsFault memaddrdesc)
+ then AArch64_Abort (reset_vector_start address,memaddrdesc.AddressDescriptor_fault)
+ else return ()) >>
+ return (_rMem (read_buffer,memaddrdesc,size,acctype,exclusive))
+
+let AArch64_wMemSingle (write_buffer, address, size, acctype, wasaligned, exclusive, value) =
+ let _ =
+ assert' (eq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),size)))) (Nothing) in
+ let iswrite = B1 in
+ let memaddrdesc =
+ AArch64_TranslateAddress (reset_vector_start address,acctype,iswrite,wasaligned,size) in
+ (if bitU_to_bool (IsFault memaddrdesc)
+ then AArch64_Abort (reset_vector_start address,memaddrdesc.AddressDescriptor_fault)
+ else return ()) >>
+ let _ =
+ if bitU_to_bool memaddrdesc.AddressDescriptor_memattrs.MemoryAttributes_shareable
+ then ClearExclusiveByAddress (memaddrdesc.AddressDescriptor_paddress,ProcessorID (),size)
+ else () in
+ return (_wMem
+ (write_buffer,
+ memaddrdesc,
+ size,
+ acctype,
+ exclusive,
+ reset_vector_start (set_vector_start_to_length value)))
+
+let AArch64_ExclusiveMonitorsPass (address, size) =
+ let acctype = AccType_ATOMIC in
+ let iswrite = B1 in
+ let aligned =
+ eq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),size))) in
+ (if bitU_to_bool (~aligned)
+ then
+ let secondstage = B0 in
+ AArch64_Abort (reset_vector_start address,AArch64_AlignmentFault (acctype,iswrite,secondstage))
+ else return ()) >>
+ let passed = AArch64_IsExclusiveVA (reset_vector_start address,ProcessorID (),size) in
+ (if bitU_to_bool (~passed)
+ then return (B0,passed)
+ else
+ let memaddrdesc =
+ AArch64_TranslateAddress (reset_vector_start address,acctype,iswrite,aligned,size) in
+ (if bitU_to_bool (IsFault memaddrdesc)
+ then AArch64_Abort (reset_vector_start address,memaddrdesc.AddressDescriptor_fault)
+ else return ()) >>
+ let passed = IsExclusiveLocal (memaddrdesc.AddressDescriptor_paddress,ProcessorID (),size) in
+ let passed =
+ if bitU_to_bool passed
+ then
+ let _ = ClearExclusiveLocal (ProcessorID ()) in
+ if bitU_to_bool memaddrdesc.AddressDescriptor_memattrs.MemoryAttributes_shareable
+ then IsExclusiveGlobal (memaddrdesc.AddressDescriptor_paddress,ProcessorID (),size)
+ else passed
+ else passed in
+ return (passed,passed)) >>= fun (w__0, passed) ->
+ return w__0
+
+let decodeLoadsStores machineCode =
+ match machineCode with
+ | ((Vector [_;_;B0;B0;B1;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__80) ->
+ decodeLoadStoreExclusive (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B0;B1;B1;_;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__99) ->
+ return (decodeLoadRegisterLiteral (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [_;_;B1;B0;B1;_;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__118) ->
+ decodeLoadStoreNoAllocatePairOffset
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B0;B1;_;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__137) ->
+ decodeLoadStoreRegisterPairPostIndexed
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B0;B1;_;B0;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__156) ->
+ decodeLoadStoreRegisterPairOffset (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B0;B1;_;B0;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__175) ->
+ decodeLoadStoreRegisterPairPreIndexed
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B0;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__194) ->
+ decodeLoadStoreRegisterUnscaledImmediate
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B0;B1;_;_;_;_;_;_;_;_;_;_] _ _) as v__213) ->
+ decodeLoadStoreRegisterImmediatePostIndexed
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B1;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__232) ->
+ decodeLoadStoreRegisterUnprivileged
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B0;_;_;B0;_;_;_;_;_;_;_;_;_;B1;B1;_;_;_;_;_;_;_;_;_;_] _ _) as v__251) ->
+ decodeLoadStoreRegisterImmediatePreIndexed
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B0;_;_;B1;_;_;_;_;_;_;_;_;_;B1;B0;_;_;_;_;_;_;_;_;_;_] _ _) as v__270) ->
+ decodeLoadStoreRegisterRegisterOffset
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;B1;B1;B1;_;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__289) ->
+ decodeLoadStoreRegisterUnsignedImmediate
+ (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [B0;_;B0;B0;B1;B1;B0;B0;B0;_;B0;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__308) ->
+ decodeAdvSIMDLoadStoreMultiStruct (reset_vector_start machineCode)
+ | ((Vector [B0;_;B0;B0;B1;B1;B0;B0;B1;_;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__327) ->
+ decodeAdvSIMDLoadStoreMultiStructPostIndexed (reset_vector_start machineCode)
+ | ((Vector [B0;_;B0;B0;B1;B1;B0;B1;B0;_;_;B0;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__346) ->
+ decodeAdvSIMDLoadStoreSingleStruct (reset_vector_start machineCode)
+ | ((Vector [B0;_;B0;B0;B1;B1;B0;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__365) ->
+ decodeAdvSIMDLoadStoreSingleStructPostIndexed (reset_vector_start machineCode)
+ end
+
+let S1TranslationRegime () =
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ if bitU_to_bool (neq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL0))
+ then
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ return (set_vector_start 1 w__1)
+ else
+ IsSecure () >>= fun w__2 ->
+ return (if bitU_to_bool
+ (w__2 &.
+ ((HaveEL (reset_vector_start EL3)) &. (ELUsingAArch32 (reset_vector_start EL3))))
+ then EL3
+ else EL1)
+
+let AArch64_CheckForSMCTrap imm =
+ IsSecure () >>= fun w__0 ->
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ read_reg_field CurrentEL "EL" >>= fun w__2 ->
+ read_reg_bitfield HCR_EL2 "TSC" >>= fun w__3 ->
+ let route_to_el2 =
+ (HaveEL (reset_vector_start EL2)) &.
+ ((~w__0) &.
+ (((eq_vec (set_vector_start_to_length w__1, set_vector_start_to_length EL0)) |.
+ (eq_vec (set_vector_start_to_length w__2, set_vector_start_to_length EL1))) &.
+ (eq (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))) in
+ if bitU_to_bool route_to_el2
+ then not_implemented "AArch64_CheckForSMCTrap route_to_el2"
+ else return ()
+
+let CheckSystemAccess (op0, op1, crn, crm, op2, rt, read) =
+ let unallocated = B0 in
+ let need_secure = B0 in
+ let min_EL = to_vec_dec ((2:ii),(0:ii)) in
+ match op1 with
+ | ((Vector [B0;B0;_] _ _) as v__77) ->
+ let min_EL = EL1 in
+ return (need_secure,min_EL)
+ | Vector [B0;B1;B0] _ _ ->
+ let min_EL = EL1 in
+ return (need_secure,min_EL)
+ | Vector [B0;B1;B1] _ _ ->
+ let min_EL = EL0 in
+ return (need_secure,min_EL)
+ | Vector [B1;B0;B0] _ _ ->
+ let min_EL = EL2 in
+ return (need_secure,min_EL)
+ | Vector [B1;B0;B1] _ _ ->
+ UnallocatedEncoding () >>
+ return (need_secure,min_EL)
+ | Vector [B1;B1;B0] _ _ ->
+ let min_EL = EL3 in
+ return (need_secure,min_EL)
+ | Vector [B1;B1;B1] _ _ ->
+ let min_EL = EL1 in
+ let need_secure = B1 in
+ return (need_secure,min_EL)
+ end >>= fun (need_secure, min_EL) ->
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ if bitU_to_bool (lt_vec (set_vector_start_to_length w__0, set_vector_start_to_length min_EL))
+ then UnallocatedEncoding ()
+ else
+ IsSecure () >>= fun w__1 ->
+ if bitU_to_bool (need_secure &. (~w__1))
+ then UnallocatedEncoding ()
+ else
+ AArch64_CheckUnallocatedSystemAccess
+ (reset_vector_start op0,
+ reset_vector_start op1,
+ reset_vector_start crn,
+ reset_vector_start crm,
+ reset_vector_start op2,
+ read) >>= fun w__2 ->
+ if bitU_to_bool w__2
+ then UnallocatedEncoding ()
+ else return ()
+
+let ExternalSecureInvasiveDebugEnabled () =
+ IsSecure () >>= fun w__0 ->
+ if bitU_to_bool ((~(HaveEL (reset_vector_start EL3))) &. (~w__0))
+ then return B0
+ else
+ ExternalInvasiveDebugEnabled () >>= fun w__1 ->
+ signalSPIDEN () >>= fun w__2 ->
+ return (w__1 &. (eq (w__2, HIGH)))
+
+let decodeDataImmediate machineCode =
+ match machineCode with
+ | ((Vector [_;_;_;B1;B0;B0;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__35) ->
+ return (decodePCRelAddressing (reset_vector_start (set_vector_start_to_length machineCode)))
+ | ((Vector [_;_;_;B1;B0;B0;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__42) ->
+ decodeAddSubtractImmediate (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B1;B0;B0;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__49) ->
+ decodeLogicalImmediate (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B1;B0;B0;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__56) ->
+ decodeMoveWideImmediate (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B1;B0;B0;B1;B1;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__63) ->
+ decodeBitfield (reset_vector_start (set_vector_start_to_length machineCode))
+ | ((Vector [_;_;_;B1;B0;B0;B1;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__70) ->
+ decodeExtract (reset_vector_start (set_vector_start_to_length machineCode))
+ end
+
+let SCTLR' () =
+ S1TranslationRegime () >>= fun w__0 ->
+ return (SCTLR (reset_vector_start w__0))
+
+let HaltingAllowed () =
+ Halted () >>= fun w__0 ->
+ DoubleLockStatus () >>= fun w__1 ->
+ if bitU_to_bool (w__0 |. w__1)
+ then return B0
+ else
+ IsSecure () >>= fun w__2 ->
+ if bitU_to_bool w__2
+ then ExternalSecureInvasiveDebugEnabled ()
+ else ExternalInvasiveDebugEnabled ()
+
+let decode machineCode =
+ match machineCode with
+ | ((Vector [_;_;_;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__0) ->
+ return (Just (Unallocated))
+ | ((Vector [_;_;_;B1;B0;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__5) ->
+ decodeDataImmediate (reset_vector_start machineCode)
+ | ((Vector [_;_;_;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__10) ->
+ decodeBranchesExceptionSystem (reset_vector_start machineCode)
+ | ((Vector [_;_;_;_;B1;_;B0;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__15) ->
+ decodeLoadsStores (reset_vector_start machineCode)
+ | ((Vector [_;_;_;_;B1;B0;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__20) ->
+ decodeDataRegister (reset_vector_start machineCode)
+ | ((Vector [_;_;_;B0;B1;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__25) ->
+ decodeDataSIMDFPoint1 (reset_vector_start machineCode)
+ | ((Vector [_;_;_;B1;B1;B1;B1;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_] _ _) as v__30) ->
+ decodeDataSIMDFPoint2 (reset_vector_start machineCode)
+ | _ -> return (Nothing)
+ end
+
+let BigEndian () =
+ let bigend = B0 in
+ if bitU_to_bool (UsingAArch32 ())
+ then
+ read_reg PSTATE_E >>= fun w__0 ->
+ let bigend = neq_vec_range (w__0, (0:ii)) in
+ return bigend
+ else
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ if bitU_to_bool (eq_vec (set_vector_start_to_length w__1, set_vector_start_to_length EL0))
+ then
+ read_reg_bitfield SCTLR_EL1 "E0E" >>= fun w__2 ->
+ let bigend = neq (match w__2 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ return bigend
+ else
+ SCTLR' () >>= fun w__3 ->
+ read_reg_bitfield w__3 "EE" >>= fun w__4 ->
+ let bigend = neq (match w__4 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ return bigend
+
+let flush_read_buffer (read_buffer, size) =
+ let _ = assert' (eq_range (read_buffer.read_buffer_type_size, size)) (Nothing) in
+ let value = set_vector_start_to_length (to_vec_dec (size * (8:ii),(0:ii))) in
+ (if bitU_to_bool read_buffer.read_buffer_type_exclusive
+ then
+ match read_buffer.read_buffer_type_acctype with
+ | AccType_ATOMIC ->
+ rMem_ATOMIC
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__0 ->
+ return (set_vector_start_to_length w__0)
+ | AccType_ORDERED ->
+ rMem_ATOMIC_ORDERED
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__1 ->
+ return (set_vector_start_to_length w__1)
+ | _ ->
+ not_implemented "unimplemented memory access" >>
+ return value
+ end
+ else
+ match read_buffer.read_buffer_type_acctype with
+ | AccType_NORMAL ->
+ rMem_NORMAL
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__2 ->
+ return (set_vector_start_to_length w__2)
+ | AccType_STREAM ->
+ rMem_STREAM
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__3 ->
+ return (set_vector_start_to_length w__3)
+ | AccType_UNPRIV ->
+ rMem_NORMAL
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__4 ->
+ return (set_vector_start_to_length w__4)
+ | AccType_ORDERED ->
+ rMem_ORDERED
+ (reset_vector_start read_buffer.read_buffer_type_address,
+ read_buffer.read_buffer_type_size) >>= fun w__5 ->
+ return (set_vector_start_to_length w__5)
+ | AccType_ATOMIC -> return value
+ end) >>= fun value ->
+ BigEndian () >>= fun w__6 ->
+ let value =
+ if bitU_to_bool w__6
+ then
+ set_vector_start_to_length
+ (BigEndianReverse (reset_vector_start (set_vector_start_to_length value)))
+ else value in
+ return (set_vector_start_to_length value)
+
+let CheckSPAlignment () =
+ rSP (64:ii) >>= fun sp ->
+ let stack_align_check = B0 in
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ (if bitU_to_bool (eq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL0))
+ then
+ read_reg_bitfield SCTLR_EL1 "SA0" >>= fun w__1 ->
+ let stack_align_check = neq (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ return stack_align_check
+ else
+ SCTLR' () >>= fun w__2 ->
+ read_reg_bitfield w__2 "SA" >>= fun w__3 ->
+ let stack_align_check = neq (match w__3 with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)) in
+ return stack_align_check) >>= fun stack_align_check ->
+ if bitU_to_bool
+ (stack_align_check &.
+ (neq_vec
+ (set_vector_start_to_length sp,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length sp),(16:ii))))))
+ then AArch64_SPAlignmentFault ()
+ else return ()
+
+let AArch64_CheckAlignment (address, size, acctype, iswrite) =
+ let aligned =
+ eq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),size))) in
+ SCTLR' () >>= fun w__0 ->
+ read_reg_bitfield w__0 "A" >>= fun A ->
+ (if bitU_to_bool
+ ((~aligned) &.
+ ((eq (acctype, AccType_ATOMIC)) |.
+ ((eq (acctype, AccType_ORDERED)) |.
+ (eq (match A with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii))))))
+ then
+ let secondstage = B0 in
+ AArch64_Abort (reset_vector_start address,AArch64_AlignmentFault (acctype,iswrite,secondstage))
+ else return ()) >>
+ return aligned
+
+let rMem' (read_buffer, address, size, acctype, exclusive) =
+ let read_buffer' = read_buffer in
+ let i = (0:ii) in
+ let iswrite = B0 in
+ AArch64_CheckAlignment (reset_vector_start address,size,acctype,iswrite) >>= fun aligned ->
+ let atomic =
+ (aligned &. (~((eq (acctype, AccType_VEC)) |. (eq (acctype, AccType_VECSTREAM))))) |.
+ (eq_range (size, (1:ii))) in
+ if bitU_to_bool (~atomic)
+ then
+ let _ = assert' (~exclusive) (Nothing) in
+ let _ = assert' (gt (size, (1:ii))) (Nothing) in
+ if bitU_to_bool (~exclusive)
+ then
+ AArch64_rMemSingle (read_buffer',reset_vector_start address,(1:ii),acctype,aligned,B0) >>= fun w__0 ->
+ let read_buffer' = w__0 in
+ (foreachM_inc ((1:ii),size - (1:ii),(1:ii)) read_buffer'
+ (fun i read_buffer' ->
+ AArch64_rMemSingle
+ (read_buffer',
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) i)),
+ (1:ii),
+ acctype,
+ aligned,
+ B0)))
+ else return read_buffer'
+ else AArch64_rMemSingle (read_buffer',reset_vector_start address,size,acctype,aligned,exclusive)
+
+let wMem' (write_buffer, address, size, acctype, value, exclusive) =
+ let write_buffer' = write_buffer in
+ let value' = set_vector_start_to_length value in
+ let i = (0:ii) in
+ let iswrite = B1 in
+ BigEndian () >>= fun w__0 ->
+ let value' =
+ if bitU_to_bool w__0
+ then
+ set_vector_start_to_length
+ (BigEndianReverse (reset_vector_start (set_vector_start_to_length value')))
+ else value' in
+ AArch64_CheckAlignment (reset_vector_start address,size,acctype,iswrite) >>= fun aligned ->
+ let atomic =
+ (aligned &. (~((eq (acctype, AccType_VEC)) |. (eq (acctype, AccType_VECSTREAM))))) |.
+ (eq_range (size, (1:ii))) in
+ let exclusiveSuccess = B0 in
+ if bitU_to_bool (~atomic)
+ then
+ let _ = assert' (~exclusive) (Nothing) in
+ if bitU_to_bool (~exclusive)
+ then
+ let _ = assert' (gt (size, (1:ii))) (Nothing) in
+ AArch64_wMemSingle
+ (write_buffer',
+ reset_vector_start address,
+ (1:ii),
+ acctype,
+ aligned,
+ B0,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length value') (7:ii) (0:ii)))) >>= fun w__1 ->
+ let write_buffer' = w__1 in
+ (foreachM_inc ((1:ii),size - (1:ii),(1:ii)) write_buffer'
+ (fun i write_buffer' ->
+ AArch64_wMemSingle
+ (write_buffer',
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) i)),
+ (1:ii),
+ acctype,
+ aligned,
+ B0,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length value') (((8:ii) * i) + (7:ii)) ((8:ii) * i))))))
+ else return write_buffer'
+ else
+ AArch64_wMemSingle
+ (write_buffer',
+ reset_vector_start address,
+ size,
+ acctype,
+ aligned,
+ exclusive,
+ reset_vector_start (set_vector_start_to_length value'))
+
+let rMem (read_buffer, address, size, acctype) =
+ rMem' (read_buffer,reset_vector_start address,size,acctype,B0)
+
+let rMem_exclusive (read_buffer, address, size, acctype) =
+ rMem' (read_buffer,reset_vector_start address,size,acctype,B1)
+
+let wMem (write_buffer, address, size, acctype, value) =
+ wMem'
+ (write_buffer,
+ reset_vector_start address,
+ size,
+ acctype,
+ reset_vector_start (set_vector_start_to_length value),
+ B0)
+
+let wMem_exclusive (write_buffer, address, size, acctype, value) =
+ wMem'
+ (write_buffer,
+ reset_vector_start address,
+ size,
+ acctype,
+ reset_vector_start (set_vector_start_to_length value),
+ B1)
+
+
+
+let execute_TMStart t =
+ read_reg TxNestingLevel >>= fun nesting ->
+ read_reg_field TXIDR_EL0 "DEPTH" >>= fun w__0 ->
+ if bitU_to_bool
+ (lt_vec_unsigned (set_vector_start_to_length nesting, set_vector_start_to_length w__0))
+ then
+ write_reg
+ TxNestingLevel
+ (set_vector_start 7 (add_VIV (reset_vector_start (set_vector_start_to_length nesting)) (1:ii))) >>
+ let status = to_vec_dec ((64:ii),(0:ii)) in
+ (if bitU_to_bool (eq_vec_range (set_vector_start_to_length nesting, (0:ii)))
+ then read_reg TMStartEffect
+ else return status) >>= fun status ->
+ wX (t,reset_vector_start (set_vector_start_to_length status))
+ else
+ let status = to_vec_dec ((64:ii),(0:ii)) in
+ let status = update_pos status (10:ii) B1 in
+ write_reg TMAbortEffect status
+
+let execute_TMCommit () =
+ read_reg TxNestingLevel >>= fun nesting ->
+ (if bitU_to_bool (eq_vec_range (set_vector_start_to_length nesting, (1:ii)))
+ then TMCommitEffect ()
+ else
+ if bitU_to_bool (eq_vec_range (set_vector_start_to_length nesting, (0:ii)))
+ then AArch64_UndefinedFault ()
+ else return ()) >>
+ write_reg
+ TxNestingLevel
+ (set_vector_start 7 (minus_VIV (reset_vector_start (set_vector_start_to_length nesting)) (1:ii)))
+
+let execute_TMTest () =
+ read_reg TxNestingLevel >>= fun w__0 ->
+ if bitU_to_bool (gt_vec_range (w__0, (0:ii)))
+ then wPSTATE_NZCV ((),reset_vector_start (Vector [B0;B0;B0;B0] 3 false))
+ else wPSTATE_NZCV ((),reset_vector_start (Vector [B0;B1;B0;B0] 3 false))
+
+let execute_TMAbort (retry, reason) =
+ read_reg TxNestingLevel >>= fun w__0 ->
+ if bitU_to_bool (gt_vec_range (w__0, (0:ii)))
+ then
+ let status = to_vec_dec ((64:ii),(0:ii)) in
+ let status = update status (4:ii) (0:ii) reason in
+ let status = update_pos status (8:ii) retry in
+ let status = update_pos status (9:ii) B1 in
+ write_reg TMAbortEffect status
+ else return ()
+
+let execute_CompareAndBranch (t, datasize, iszero, offset) =
+ rX (datasize,t) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ if bitU_to_bool
+ (eq_bit (IsZero (reset_vector_start (set_vector_start_to_length operand1)), iszero))
+ then
+ rPC () >>= fun w__1 ->
+ BranchTo
+ (reset_vector_start (set_vector_start_to_length
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__1))
+ (reset_vector_start (set_vector_start_to_length offset)))),
+ BranchType_JMP)
+ else return ()
+
+let execute_BranchConditional (offset, condition) =
+ ConditionHolds (reset_vector_start condition) >>= fun w__0 ->
+ if bitU_to_bool w__0
+ then
+ rPC () >>= fun w__1 ->
+ BranchTo
+ (reset_vector_start (set_vector_start_to_length
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__1))
+ (reset_vector_start (set_vector_start_to_length offset)))),
+ BranchType_JMP)
+ else return ()
+
+let execute_GenerateExceptionEL1 imm = AArch64_CallSupervisor (reset_vector_start imm)
+
+let execute_GenerateExceptionEL2 imm =
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ IsSecure () >>= fun w__2 ->
+ (if bitU_to_bool
+ ((~(HaveEL (reset_vector_start EL2))) |.
+ ((eq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL0)) |.
+ ((eq_vec (set_vector_start_to_length w__1, set_vector_start_to_length EL1)) &. w__2)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool (HaveEL (reset_vector_start EL3))
+ then read_reg_bitfield SCR_EL3 "HCE"
+ else
+ read_reg_bitfield HCR_EL2 "HCD" >>= fun w__4 ->
+ return (NOT' w__4)) >>= fun hvc_enable ->
+ if bitU_to_bool (eq (match hvc_enable with | B0 -> (0:ii) | B1 -> (1:ii) end, (0:ii)))
+ then AArch64_UndefinedFault ()
+ else AArch64_CallHypervisor (reset_vector_start imm)
+
+let execute_GenerateExceptionEL3 imm =
+ read_reg_field CurrentEL "EL" >>= fun w__0 ->
+ (if bitU_to_bool
+ ((~(HaveEL (reset_vector_start EL3))) |.
+ (eq_vec (set_vector_start_to_length w__0, set_vector_start_to_length EL0)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ AArch64_CheckForSMCTrap (reset_vector_start imm) >>
+ read_reg_bitfield SCR_EL3 "SMD" >>= fun w__1 ->
+ if bitU_to_bool (eq (match w__1 with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then AArch64_UndefinedFault ()
+ else AArch64_CallSecureMonitor (reset_vector_start imm)
+
+let execute_DebugBreakpoint comment = AArch64_SoftwareBreakpoint (reset_vector_start comment)
+
+let execute_ExternalDebugBreakpoint () = Halt (reset_vector_start DebugHalt_HaltInstruction)
+
+let execute_DebugSwitchToExceptionLevel target_level =
+ DCPSInstruction (reset_vector_start target_level)
+
+let execute_MoveSystemImmediate (operand, field') =
+ match field' with
+ | PSTATEField_SP -> write_reg_bitfield SPSel "SP" (access operand (0:ii))
+ | PSTATEField_DAIFSet ->
+ read_reg_bitfield DAIF "D" >>= fun w__0 ->
+ write_reg_bitfield DAIF "D" (w__0 |. (access operand (3:ii))) >>
+ read_reg_bitfield DAIF "A" >>= fun w__1 ->
+ write_reg_bitfield DAIF "A" (w__1 |. (access operand (2:ii))) >>
+ read_reg_bitfield DAIF "I" >>= fun w__2 ->
+ write_reg_bitfield DAIF "I" (w__2 |. (access operand (1:ii))) >>
+ read_reg_bitfield DAIF "F" >>= fun w__3 ->
+ write_reg_bitfield DAIF "F" (w__3 |. (access operand (0:ii)))
+ | PSTATEField_DAIFClr ->
+ read_reg_bitfield DAIF "D" >>= fun w__4 ->
+ write_reg_bitfield DAIF "D" (w__4 &. (NOT' (access operand (3:ii)))) >>
+ read_reg_bitfield DAIF "A" >>= fun w__5 ->
+ write_reg_bitfield DAIF "A" (w__5 &. (NOT' (access operand (2:ii)))) >>
+ read_reg_bitfield DAIF "I" >>= fun w__6 ->
+ write_reg_bitfield DAIF "I" (w__6 &. (NOT' (access operand (1:ii)))) >>
+ read_reg_bitfield DAIF "F" >>= fun w__7 ->
+ write_reg_bitfield DAIF "F" (w__7 &. (NOT' (access operand (0:ii))))
+ end
+
+let execute_Hint op =
+ match op with
+ | SystemHintOp_YIELD -> return (Hint_Yield ())
+ | SystemHintOp_WFE ->
+ EventRegistered () >>= fun w__0 ->
+ if bitU_to_bool w__0
+ then ClearEventRegister ()
+ else
+ read_reg_field CurrentEL "EL" >>= fun w__1 ->
+ (if bitU_to_bool (eq_vec (set_vector_start_to_length w__1, set_vector_start_to_length EL0))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL1,B1)
+ else return ()) >>
+ IsSecure () >>= fun w__2 ->
+ read_reg_field CurrentEL "EL" >>= fun w__3 ->
+ read_reg_field CurrentEL "EL" >>= fun w__4 ->
+ (if bitU_to_bool
+ ((HaveEL (reset_vector_start EL2)) &.
+ ((~w__2) &.
+ ((eq_vec (set_vector_start_to_length w__3, set_vector_start_to_length EL0)) |.
+ (eq_vec (set_vector_start_to_length w__4, set_vector_start_to_length EL1)))))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL2,B1)
+ else return ()) >>
+ read_reg_field CurrentEL "EL" >>= fun w__5 ->
+ (if bitU_to_bool
+ ((HaveEL (reset_vector_start EL3)) &.
+ (neq_vec (set_vector_start_to_length w__5, set_vector_start_to_length EL3)))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL3,B1)
+ else return ()) >>
+ WaitForEvent ()
+ | SystemHintOp_WFI ->
+ InterruptPending () >>= fun w__6 ->
+ if bitU_to_bool (~w__6)
+ then
+ read_reg_field CurrentEL "EL" >>= fun w__7 ->
+ (if bitU_to_bool (eq_vec (set_vector_start_to_length w__7, set_vector_start_to_length EL0))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL1,B0)
+ else return ()) >>
+ IsSecure () >>= fun w__8 ->
+ read_reg_field CurrentEL "EL" >>= fun w__9 ->
+ read_reg_field CurrentEL "EL" >>= fun w__10 ->
+ (if bitU_to_bool
+ ((HaveEL (reset_vector_start EL2)) &.
+ ((~w__8) &.
+ ((eq_vec (set_vector_start_to_length w__9, set_vector_start_to_length EL0)) |.
+ (eq_vec (set_vector_start_to_length w__10, set_vector_start_to_length EL1)))))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL2,B0)
+ else return ()) >>
+ read_reg_field CurrentEL "EL" >>= fun w__11 ->
+ (if bitU_to_bool
+ ((HaveEL (reset_vector_start EL3)) &.
+ (neq_vec (set_vector_start_to_length w__11, set_vector_start_to_length EL3)))
+ then AArch64_CheckForWFxTrap (reset_vector_start EL3,B0)
+ else return ()) >>
+ WaitForInterrupt ()
+ else return ()
+ | SystemHintOp_SEV -> return (SendEvent ())
+ | SystemHintOp_SEVL -> EventRegisterSet ()
+ | _ -> return ()
+ end
+
+let execute_ClearExclusiveMonitor imm = return (ClearExclusiveLocal (ProcessorID ()))
+
+let execute_Barrier (op, domain, types) =
+ match op with
+ | MemBarrierOp_DSB -> DataSynchronizationBarrier (domain,types)
+ | MemBarrierOp_DMB -> DataMemoryBarrier (domain,types)
+ | MemBarrierOp_ISB -> InstructionSynchronizationBarrier ()
+ end
+
+let execute_System (t, sys_op0, sys_op1, sys_op2, sys_crn, sys_crm, has_result) =
+ if bitU_to_bool has_result
+ then
+ SysOp_R (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2) >>= fun w__0 ->
+ wX (t,reset_vector_start (set_vector_start_to_length w__0))
+ else
+ rX ((64:ii),t) >>= fun w__1 ->
+ SysOp_W (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2,reset_vector_start w__1)
+
+let execute_MoveSystemRegister (t, sys_op0, sys_op1, sys_op2, sys_crn, sys_crm, read) =
+ if bitU_to_bool read
+ then
+ System_Get (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2) >>= fun w__0 ->
+ wX (t,reset_vector_start (set_vector_start_to_length w__0))
+ else
+ rX ((64:ii),t) >>= fun w__1 ->
+ System_Put (sys_op0,sys_op1,sys_crn,sys_crm,sys_op2,reset_vector_start w__1)
+
+let execute_ImplementationDefinedTestBeginEnd isEnd =
+ return (if bitU_to_bool isEnd
+ then info "test ends"
+ else info "test begins")
+
+let execute_ImplementationDefinedStopFetching () = return (info "stop fetching instructions")
+
+let execute_ImplementationDefinedThreadStart () = return (info "thread start")
+
+let execute_TestBitAndBranch (t, datasize, bit_pos, bit_val, offset) =
+ rX (datasize,t) >>= fun w__0 ->
+ let operand = set_vector_start_to_length w__0 in
+ if bitU_to_bool (eq_bit (access (set_vector_start_to_length operand) bit_pos, bit_val))
+ then
+ rPC () >>= fun w__1 ->
+ BranchTo
+ (reset_vector_start (set_vector_start_to_length
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__1))
+ (reset_vector_start (set_vector_start_to_length offset)))),
+ BranchType_JMP)
+ else return ()
+
+let execute_BranchImmediate (branch_type, offset) =
+ (if bitU_to_bool (eq (branch_type, BranchType_CALL))
+ then
+ rPC () >>= fun w__0 ->
+ wX
+ ((30:ii),
+ reset_vector_start (set_vector_start_to_length
+ (add_VIV (reset_vector_start (set_vector_start_to_length w__0)) (4:ii))))
+ else return ()) >>
+ rPC () >>= fun w__1 ->
+ BranchTo
+ (reset_vector_start (set_vector_start_to_length
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__1))
+ (reset_vector_start (set_vector_start_to_length offset)))),
+ branch_type)
+
+let execute_BranchRegister (n, branch_type) =
+ rX ((64:ii),n) >>= fun target ->
+ (if bitU_to_bool (eq (branch_type, BranchType_CALL))
+ then
+ rPC () >>= fun w__0 ->
+ wX
+ ((30:ii),
+ reset_vector_start (set_vector_start_to_length
+ (add_VIV (reset_vector_start (set_vector_start_to_length w__0)) (4:ii))))
+ else return ()) >>
+ BranchTo (reset_vector_start (set_vector_start_to_length target),branch_type)
+
+let execute_ExceptionReturn () =
+ rELR' () >>= fun w__0 ->
+ rSPSR () >>= fun w__1 ->
+ AArch64_ExceptionReturn (reset_vector_start w__0,reset_vector_start w__1)
+
+let execute_DebugRestorePState () = DRPSInstruction ()
+
+let execute_LoadLiteral (t, memop, _signed, size, offset, datasize) =
+ rPC () >>= fun w__0 ->
+ let address =
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length w__0))
+ (reset_vector_start (set_vector_start_to_length offset))) in
+ let data = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ match memop with
+ | MemOp_LOAD ->
+ rMem (empty_read_buffer,reset_vector_start address,size,AccType_NORMAL) >>= fun w__1 ->
+ flush_read_buffer (w__1,size) >>= fun w__2 ->
+ let data = set_vector_start_to_length w__2 in
+ (if bitU_to_bool _signed
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length data)))))
+ else wX (t,reset_vector_start (set_vector_start_to_length data))) >>
+ return data
+ | MemOp_PREFETCH -> return data
+ end >>= fun data ->
+ return ()
+
+let execute_LoadStoreAcqExc (n, t, t2, s, acctype, excl, pair, memop, elsize, regsize, datasize) =
+ let address = to_vec_dec ((64:ii),(0:ii)) in
+ let data = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let dbytes = quot datasize (8:ii) in
+ let rt_unknown = B0 in
+ let rn_unknown = B0 in
+ (if bitU_to_bool ((eq (memop, MemOp_LOAD)) &. (pair &. (eq_range (t, t2))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool ((eq (memop, MemOp_STORE)) &. excl)
+ then
+ (if bitU_to_bool ((eq_range (s, t)) |. (pair &. (eq_range (s, t2))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ if bitU_to_bool ((eq_range (s, n)) &. (neq_range (n, (31:ii))))
+ then UnallocatedEncoding ()
+ else return ()
+ else return ()) >>
+ let status = B0 in
+ (if bitU_to_bool ((eq (memop, MemOp_STORE)) &. excl)
+ then
+ speculate_exclusive_success () >>= fun w__0 ->
+ let status = if bitU_to_bool w__0 then B0 else B1 in
+ wX
+ (s,
+ reset_vector_start (set_vector_start_to_length
+ (ZeroExtend
+ ((32:ii),
+ reset_vector_start (set_vector_start_to_length (Vector [status] 0 false)))))) >>
+ return status
+ else return status) >>= fun status ->
+ (if bitU_to_bool (eq (match status with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then return (address,data,status)
+ else
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ CheckSPAlignment () >>
+ rSP (64:ii)
+ else
+ if bitU_to_bool rn_unknown
+ then
+ let address = to_vec_dec ((64:ii),UNKNOWN) in
+ return address
+ else rX ((64:ii),n)) >>= fun address ->
+ match memop with
+ | MemOp_STORE ->
+ wMem_Addr (reset_vector_start address,dbytes,acctype,excl) >>
+ (if bitU_to_bool rt_unknown
+ then
+ let data = set_vector_start_to_length (to_vec_dec (length data,UNKNOWN)) in
+ return data
+ else
+ if bitU_to_bool pair
+ then
+ let _ = assert' excl (Nothing) in
+ rX (regsize,t) >>= fun w__3 ->
+ let el1 = set_vector_start_to_length w__3 in
+ rX (length el1,t2) >>= fun w__4 ->
+ let el2 = set_vector_start_to_length w__4 in
+ BigEndian () >>= fun w__5 ->
+ let data =
+ if bitU_to_bool w__5
+ then
+ set_vector_start_to_length
+ ((set_vector_start_to_length el1) ^^ (set_vector_start_to_length el2))
+ else
+ set_vector_start_to_length
+ ((set_vector_start_to_length el2) ^^ (set_vector_start_to_length el1)) in
+ return data
+ else
+ rX (length data,t) >>= fun w__6 ->
+ return (set_vector_start_to_length w__6)) >>= fun data ->
+ (if bitU_to_bool excl
+ then
+ let status = B1 in
+ AArch64_ExclusiveMonitorsPass (reset_vector_start address,dbytes) >>= fun w__7 ->
+ if bitU_to_bool w__7
+ then
+ wMem_exclusive
+ (empty_write_buffer,
+ reset_vector_start address,
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data)) >>= fun w__8 ->
+ flush_write_buffer_exclusive w__8
+ else return status
+ else
+ wMem
+ (empty_write_buffer,
+ reset_vector_start address,
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data)) >>= fun w__10 ->
+ flush_write_buffer w__10 >>
+ return status) >>= fun status ->
+ return (data,status)
+ | MemOp_LOAD ->
+ let _ =
+ if bitU_to_bool excl
+ then AArch64_SetExclusiveMonitors (reset_vector_start address,dbytes)
+ else () in
+ (if bitU_to_bool pair
+ then
+ let _ = assert' excl (Nothing) in
+ if bitU_to_bool rt_unknown
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length (to_vec_dec (length data,UNKNOWN)))) >>
+ return data
+ else
+ if bitU_to_bool (eq_range (elsize, (32:ii)))
+ then
+ rMem_exclusive (empty_read_buffer,reset_vector_start address,dbytes,acctype) >>= fun w__11 ->
+ flush_read_buffer (w__11,dbytes) >>= fun w__12 ->
+ let data = set_vector_start_to_length w__12 in
+ BigEndian () >>= fun w__13 ->
+ (if bitU_to_bool w__13
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length data) (datasize - (1:ii)) elsize))) >>
+ wX
+ (t2,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length data) (elsize - (1:ii)) (0:ii))))
+ else
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length data) (elsize - (1:ii)) (0:ii)))) >>
+ wX
+ (t2,
+ reset_vector_start (set_vector_start_to_length
+ (slice (set_vector_start_to_length data) (datasize - (1:ii)) elsize)))) >>
+ return data
+ else
+ (if bitU_to_bool
+ (neq_vec
+ (set_vector_start_to_length address,
+ set_vector_start_to_length
+ (Align (reset_vector_start (set_vector_start_to_length address),dbytes))))
+ then
+ let iswrite = B0 in
+ let secondstage = B0 in
+ AArch64_Abort
+ (reset_vector_start address,
+ AArch64_AlignmentFault (acctype,iswrite,secondstage))
+ else return ()) >>
+ rMem_exclusive
+ (empty_read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (0:ii))),
+ (8:ii),
+ acctype) >>= fun read_buffer ->
+ rMem_exclusive
+ (read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (8:ii))),
+ (8:ii),
+ acctype) >>= fun w__14 ->
+ let read_buffer = w__14 in
+ flush_read_buffer (read_buffer,(8:ii) * (2:ii)) >>= fun w__15 ->
+ let value = set_vector_start 127 w__15 in
+ wX (t,reset_vector_start (set_vector_start_to_length (slice value (63:ii) (0:ii)))) >>
+ wX
+ (t2,
+ reset_vector_start (set_vector_start_to_length (slice value (127:ii) (64:ii)))) >>
+ return data
+ else
+ rMem' (empty_read_buffer,reset_vector_start address,dbytes,acctype,excl) >>= fun w__16 ->
+ flush_read_buffer (w__16,dbytes) >>= fun w__17 ->
+ let data = set_vector_start_to_length w__17 in
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (set_vector_start_to_length
+ (ZeroExtend (regsize,reset_vector_start (set_vector_start_to_length data)))))) >>
+ return data) >>= fun data ->
+ return (data,status)
+ end >>= fun (data, status) ->
+ return (address,data,status)) >>= fun (address, data, status) ->
+ return ()
+
+let execute_LoadStorePairNonTemp (wback, postindex, n, t, t2, acctype, memop, scale, datasize, offset) =
+ let address = to_vec_dec ((64:ii),(0:ii)) in
+ let data1 = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,(0:ii))) in
+ let dbytes = quot datasize (8:ii) in
+ let rt_unknown = B0 in
+ (if bitU_to_bool ((eq (memop, MemOp_LOAD)) &. (eq_range (t, t2)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ CheckSPAlignment () >>
+ rSP (64:ii)
+ else rX ((64:ii),n)) >>= fun address ->
+ let address =
+ if bitU_to_bool (~postindex)
+ then
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)))
+ else address in
+ (if bitU_to_bool (eq (memop, MemOp_STORE))
+ then wMem_Addr (reset_vector_start address,dbytes * (2:ii),acctype,B0)
+ else return ()) >>
+ (if bitU_to_bool wback
+ then
+ let address' =
+ if bitU_to_bool (~postindex)
+ then address
+ else
+ add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)) in
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then wSP ((),reset_vector_start (set_vector_start_to_length address'))
+ else wX (n,reset_vector_start (set_vector_start_to_length address'))
+ else return ()) >>
+ match memop with
+ | MemOp_STORE ->
+ (if bitU_to_bool (rt_unknown &. (eq_range (t, n)))
+ then
+ let data1 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ return data1
+ else
+ rX (length data1,t) >>= fun w__2 ->
+ return (set_vector_start_to_length w__2)) >>= fun data1 ->
+ (if bitU_to_bool (rt_unknown &. (eq_range (t2, n)))
+ then
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ return data2
+ else
+ rX (length data1,t2) >>= fun w__3 ->
+ return (set_vector_start_to_length w__3)) >>= fun data2 ->
+ wMem
+ (empty_write_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (0:ii))),
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data1)) >>= fun write_buffer ->
+ wMem
+ (write_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) dbytes)),
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data2)) >>= fun w__4 ->
+ let write_buffer = w__4 in
+ flush_write_buffer write_buffer >>
+ return (data1,data2)
+ | MemOp_LOAD ->
+ rMem
+ (empty_read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (0:ii))),
+ dbytes,
+ acctype) >>= fun read_buffer ->
+ rMem
+ (read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) dbytes)),
+ dbytes,
+ acctype) >>= fun w__5 ->
+ let read_buffer = w__5 in
+ flush_read_buffer (read_buffer,dbytes * (2:ii)) >>= fun w__6 ->
+ let read_data = set_vector_start_to_length w__6 in
+ let data1 =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length read_data) (datasize - (1:ii)) (0:ii)) in
+ let data2 =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length read_data) ((datasize * (2:ii)) - (1:ii)) datasize) in
+ let (data1, data2) =
+ if bitU_to_bool rt_unknown
+ then
+ let data1 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ (data1,data2)
+ else (data1,data2) in
+ wX (t,reset_vector_start (set_vector_start_to_length data1)) >>
+ wX (t2,reset_vector_start (set_vector_start_to_length data2)) >>
+ return (data1,data2)
+ end >>= fun (data1, data2) ->
+ return ()
+
+let execute_LoadImmediate (n, t, acctype, memop, _signed, wback, postindex, offset, regsize, datasize) =
+ let address = to_vec_dec ((64:ii),(0:ii)) in
+ let data = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let wb_unknown = B0 in
+ let rt_unknown = B0 in
+ (if bitU_to_bool
+ ((eq (memop, MemOp_LOAD)) &. (wback &. ((eq_range (n, t)) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (memop, MemOp_STORE)) &. (wback &. ((eq_range (n, t)) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ (if bitU_to_bool (neq (memop, MemOp_PREFETCH))
+ then CheckSPAlignment ()
+ else return ()) >>
+ rSP (64:ii)
+ else rX ((64:ii),n)) >>= fun address ->
+ let address =
+ if bitU_to_bool (~postindex)
+ then
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)))
+ else address in
+ (if bitU_to_bool (eq (memop, MemOp_STORE))
+ then wMem_Addr (reset_vector_start address,quot datasize (8:ii),acctype,B0)
+ else return ()) >>
+ (if bitU_to_bool wback
+ then
+ let address' =
+ if bitU_to_bool (~postindex)
+ then address
+ else
+ add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)) in
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then wSP ((),reset_vector_start (set_vector_start_to_length address'))
+ else wX (n,reset_vector_start (set_vector_start_to_length address'))
+ else return ()) >>
+ match memop with
+ | MemOp_STORE ->
+ (if bitU_to_bool rt_unknown
+ then
+ let data = set_vector_start_to_length (to_vec_dec (length data,UNKNOWN)) in
+ return data
+ else
+ rX (length data,t) >>= fun w__2 ->
+ return (set_vector_start_to_length w__2)) >>= fun data ->
+ wMem
+ (empty_write_buffer,
+ reset_vector_start address,
+ quot datasize (8:ii),
+ acctype,
+ reset_vector_start (set_vector_start_to_length data)) >>= fun w__3 ->
+ flush_write_buffer w__3 >>
+ return data
+ | MemOp_LOAD ->
+ rMem (empty_read_buffer,reset_vector_start address,quot datasize (8:ii),acctype) >>= fun w__4 ->
+ flush_read_buffer (w__4,quot datasize (8:ii)) >>= fun w__5 ->
+ let data = set_vector_start_to_length w__5 in
+ (if bitU_to_bool _signed
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (set_vector_start_to_length
+ (SignExtend (regsize,reset_vector_start (set_vector_start_to_length data))))))
+ else
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (set_vector_start_to_length
+ (ZeroExtend (regsize,reset_vector_start (set_vector_start_to_length data))))))) >>
+ return data
+ | MemOp_PREFETCH -> return data
+ end >>= fun data ->
+ return ()
+
+let execute_LoadRegister (n, t, m, acctype, memop, _signed, wback, postindex, extend_type, shift, regsize, datasize) =
+ ExtendReg ((64:ii),m,extend_type,shift) >>= fun offset ->
+ let address = to_vec_dec ((64:ii),(0:ii)) in
+ let data = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let wb_unknown = B0 in
+ let rt_unknown = B0 in
+ (if bitU_to_bool
+ ((eq (memop, MemOp_LOAD)) &. (wback &. ((eq_range (n, t)) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (memop, MemOp_STORE)) &. (wback &. ((eq_range (n, t)) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ (if bitU_to_bool (neq (memop, MemOp_PREFETCH))
+ then CheckSPAlignment ()
+ else return ()) >>
+ rSP (64:ii)
+ else rX ((64:ii),n)) >>= fun address ->
+ let address =
+ if bitU_to_bool (~postindex)
+ then
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)))
+ else address in
+ (if bitU_to_bool (eq (memop, MemOp_STORE))
+ then wMem_Addr (reset_vector_start address,quot datasize (8:ii),acctype,B0)
+ else return ()) >>
+ (if bitU_to_bool wback
+ then
+ let address' =
+ if bitU_to_bool (~postindex)
+ then address
+ else
+ add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)) in
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then wSP ((),reset_vector_start (set_vector_start_to_length address'))
+ else wX (n,reset_vector_start (set_vector_start_to_length address'))
+ else return ()) >>
+ match memop with
+ | MemOp_STORE ->
+ (if bitU_to_bool rt_unknown
+ then
+ let data = set_vector_start_to_length (to_vec_dec (length data,UNKNOWN)) in
+ return data
+ else
+ rX (length data,t) >>= fun w__2 ->
+ return (set_vector_start_to_length w__2)) >>= fun data ->
+ wMem
+ (empty_write_buffer,
+ reset_vector_start address,
+ quot datasize (8:ii),
+ acctype,
+ reset_vector_start (set_vector_start_to_length data)) >>= fun w__3 ->
+ flush_write_buffer w__3 >>
+ return data
+ | MemOp_LOAD ->
+ rMem (empty_read_buffer,reset_vector_start address,quot datasize (8:ii),acctype) >>= fun w__4 ->
+ flush_read_buffer (w__4,quot datasize (8:ii)) >>= fun w__5 ->
+ let data = set_vector_start_to_length w__5 in
+ (if bitU_to_bool _signed
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (set_vector_start_to_length
+ (SignExtend (regsize,reset_vector_start (set_vector_start_to_length data))))))
+ else
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (set_vector_start_to_length
+ (ZeroExtend (regsize,reset_vector_start (set_vector_start_to_length data))))))) >>
+ return data
+ | MemOp_PREFETCH -> return data
+ end >>= fun data ->
+ return ()
+
+let execute_LoadStorePair (wback, postindex, n, t, t2, acctype, memop, _signed, datasize, offset) =
+ let address = to_vec_dec ((64:ii),(0:ii)) in
+ let data1 = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,(0:ii))) in
+ let dbytes = quot datasize (8:ii) in
+ let rt_unknown = B0 in
+ let wb_unknown = B0 in
+ (if bitU_to_bool
+ ((eq (memop, MemOp_LOAD)) &.
+ (wback &. (((eq_range (t, n)) |. (eq_range (t2, n))) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool
+ ((eq (memop, MemOp_STORE)) &.
+ (wback &. (((eq_range (t, n)) |. (eq_range (t2, n))) &. (neq_range (n, (31:ii))))))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool ((eq (memop, MemOp_LOAD)) &. (eq_range (t, t2)))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ CheckSPAlignment () >>
+ rSP (64:ii)
+ else rX ((64:ii),n)) >>= fun address ->
+ let address =
+ if bitU_to_bool (~postindex)
+ then
+ set_vector_start 63
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)))
+ else address in
+ (if bitU_to_bool (eq (memop, MemOp_STORE))
+ then wMem_Addr (reset_vector_start address,dbytes * (2:ii),acctype,B0)
+ else return ()) >>
+ (if bitU_to_bool wback
+ then
+ let address' =
+ if bitU_to_bool (~postindex)
+ then address
+ else
+ add_VVV
+ (reset_vector_start (set_vector_start_to_length address))
+ (reset_vector_start (set_vector_start_to_length offset)) in
+ if bitU_to_bool (eq_range (n, (31:ii)))
+ then wSP ((),reset_vector_start (set_vector_start_to_length address'))
+ else wX (n,reset_vector_start (set_vector_start_to_length address'))
+ else return ()) >>
+ match memop with
+ | MemOp_STORE ->
+ (if bitU_to_bool (rt_unknown &. (eq_range (t, n)))
+ then
+ let data1 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ return data1
+ else
+ rX (length data1,t) >>= fun w__2 ->
+ return (set_vector_start_to_length w__2)) >>= fun data1 ->
+ (if bitU_to_bool (rt_unknown &. (eq_range (t2, n)))
+ then
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ return data2
+ else
+ rX (length data1,t2) >>= fun w__3 ->
+ return (set_vector_start_to_length w__3)) >>= fun data2 ->
+ wMem
+ (empty_write_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (0:ii))),
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data1)) >>= fun write_buffer ->
+ wMem
+ (write_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) dbytes)),
+ dbytes,
+ acctype,
+ reset_vector_start (set_vector_start_to_length data2)) >>= fun w__4 ->
+ let write_buffer = w__4 in
+ flush_write_buffer write_buffer >>
+ return (data1,data2)
+ | MemOp_LOAD ->
+ rMem
+ (empty_read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) (0:ii))),
+ dbytes,
+ acctype) >>= fun read_buffer ->
+ rMem
+ (read_buffer,
+ reset_vector_start (set_vector_start 63
+ (add_VIV (reset_vector_start (set_vector_start_to_length address)) dbytes)),
+ dbytes,
+ acctype) >>= fun w__5 ->
+ let read_buffer = w__5 in
+ flush_read_buffer (read_buffer,dbytes * (2:ii)) >>= fun w__6 ->
+ let read_data = set_vector_start_to_length w__6 in
+ let data1 =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length read_data) (datasize - (1:ii)) (0:ii)) in
+ let data2 =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length read_data) ((datasize * (2:ii)) - (1:ii)) datasize) in
+ let (data1, data2) =
+ if bitU_to_bool rt_unknown
+ then
+ let data1 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ let data2 = set_vector_start_to_length (to_vec_dec (length data1,UNKNOWN)) in
+ (data1,data2)
+ else (data1,data2) in
+ (if bitU_to_bool _signed
+ then
+ wX
+ (t,
+ reset_vector_start (set_vector_start_to_length
+ (SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length data1))))) >>
+ wX
+ (t2,
+ reset_vector_start (set_vector_start_to_length
+ (SignExtend ((64:ii),reset_vector_start (set_vector_start_to_length data2)))))
+ else
+ wX (t,reset_vector_start (set_vector_start_to_length data1)) >>
+ wX (t2,reset_vector_start (set_vector_start_to_length data2))) >>
+ return (data1,data2)
+ end >>= fun (data1, data2) ->
+ return ()
+
+let execute_AddSubImmediate (d, n, datasize, sub_op, setflags, imm) =
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ rSP datasize >>= fun w__0 ->
+ return (set_vector_start_to_length w__0)
+ else
+ rX (datasize,n) >>= fun w__1 ->
+ return (set_vector_start_to_length w__1)) >>= fun operand1 ->
+ let operand2 = set_vector_start_to_length imm in
+ let carry_in = B0 in
+ let (operand2, carry_in) =
+ if bitU_to_bool sub_op
+ then
+ let operand2 =
+ set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length operand2))) in
+ let carry_in = B1 in
+ (operand2,carry_in)
+ else
+ let carry_in = B0 in
+ (operand2,carry_in) in
+ let (result, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ carry_in)) with
+ | (v0v', v1v') -> (v0v',v1v')
+ end in
+ (if bitU_to_bool setflags
+ then wPSTATE_NZCV ((),reset_vector_start nzcv)
+ else return ()) >>
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then wSP ((),reset_vector_start (set_vector_start_to_length result))
+ else wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_BitfieldMove (d, n, datasize, inzero, extend, R, S, wmask, tmask) =
+ (if bitU_to_bool inzero
+ then return (set_vector_start_to_length (Zeros datasize))
+ else
+ rX (datasize,d) >>= fun w__0 ->
+ return (set_vector_start_to_length w__0)) >>= fun dst ->
+ rX (datasize,n) >>= fun w__1 ->
+ let src = set_vector_start_to_length w__1 in
+ let bot =
+ set_vector_start_to_length
+ (bitwise_or
+ (set_vector_start_to_length
+ (bitwise_and
+ (set_vector_start_to_length dst,
+ set_vector_start_to_length
+ (NOT (reset_vector_start (set_vector_start_to_length wmask))))),
+ set_vector_start_to_length
+ (bitwise_and
+ (set_vector_start_to_length
+ (ROR (reset_vector_start (set_vector_start_to_length src),R)),
+ set_vector_start_to_length wmask)))) in
+ let top =
+ if bitU_to_bool extend
+ then
+ set_vector_start_to_length
+ (Replicate
+ (length bot,
+ reset_vector_start (set_vector_start_to_length
+ (Vector [access (set_vector_start_to_length src) S] 0 false))))
+ else set_vector_start_to_length dst in
+ wX
+ (d,
+ reset_vector_start (set_vector_start_to_length
+ (bitwise_or
+ (set_vector_start_to_length
+ (bitwise_and
+ (set_vector_start_to_length top,
+ set_vector_start_to_length
+ (NOT (reset_vector_start (set_vector_start_to_length tmask))))),
+ set_vector_start_to_length
+ (bitwise_and (set_vector_start_to_length bot, set_vector_start_to_length tmask))))))
+
+let execute_ExtractRegister (d, n, m, datasize, lsb) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let concat =
+ set_vector_start_to_length
+ ((set_vector_start_to_length operand1) ^^ (set_vector_start_to_length operand2)) in
+ let result =
+ set_vector_start_to_length
+ (slice (set_vector_start_to_length concat) ((lsb + datasize) - (1:ii)) lsb) in
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_LogicalImmediate (d, n, datasize, setflags, op, imm) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ let operand2 = set_vector_start_to_length imm in
+ let result =
+ match op with
+ | LogicalOp_AND ->
+ set_vector_start_to_length
+ (bitwise_and (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ | LogicalOp_ORR ->
+ set_vector_start_to_length
+ (bitwise_or (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ | LogicalOp_EOR ->
+ set_vector_start_to_length
+ (bitwise_xor (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ end in
+ (if bitU_to_bool setflags
+ then
+ wPSTATE_NZCV
+ ((),
+ reset_vector_start (set_vector_start 3
+ ((set_vector_start_to_length
+ (Vector [access (set_vector_start_to_length result) ((length
+ (reset_vector_start (set_vector_start_to_length
+ result))) - (1:ii))] 0 false)) ^^
+ (set_vector_start_to_length
+ ((set_vector_start_to_length
+ (Vector [IsZeroBit (reset_vector_start (set_vector_start_to_length result))] 0 false)) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false)))))))
+ else return ()) >>
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then wSP ((),reset_vector_start (set_vector_start_to_length result))
+ else wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_MoveWide (d, datasize, imm, pos, opcode) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ (if bitU_to_bool (eq (opcode, MoveWideOp_K))
+ then
+ rX (datasize,d) >>= fun w__0 ->
+ return (set_vector_start_to_length w__0)
+ else
+ let result = set_vector_start_to_length (Zeros datasize) in
+ return result) >>= fun result ->
+ let result = update result (pos + (15:ii)) pos (set_vector_start_to_length imm) in
+ let result =
+ if bitU_to_bool (eq (opcode, MoveWideOp_N))
+ then set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length result)))
+ else result in
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_Address (d, page, imm) =
+ rPC () >>= fun base ->
+ let base = if bitU_to_bool page then update base (11:ii) (0:ii) (Zeros (12:ii)) else base in
+ wX
+ (d,
+ reset_vector_start (set_vector_start_to_length
+ (add_VVV
+ (reset_vector_start (set_vector_start_to_length base))
+ (reset_vector_start (set_vector_start_to_length imm)))))
+
+let execute_AddSubExtendRegister (d, n, m, datasize, sub_op, setflags, extend_type, shift) =
+ (if bitU_to_bool (eq_range (n, (31:ii)))
+ then
+ rSP datasize >>= fun w__0 ->
+ return (set_vector_start_to_length w__0)
+ else
+ rX (datasize,n) >>= fun w__1 ->
+ return (set_vector_start_to_length w__1)) >>= fun operand1 ->
+ ExtendReg (datasize,m,extend_type,shift) >>= fun w__2 ->
+ let operand2 = set_vector_start_to_length w__2 in
+ let carry_in = B0 in
+ let (operand2, carry_in) =
+ if bitU_to_bool sub_op
+ then
+ let operand2 =
+ set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length operand2))) in
+ let carry_in = B1 in
+ (operand2,carry_in)
+ else
+ let carry_in = B0 in
+ (operand2,carry_in) in
+ let (result, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ carry_in)) with
+ | (v2v', v3v') -> (v2v',v3v')
+ end in
+ (if bitU_to_bool setflags
+ then wPSTATE_NZCV ((),reset_vector_start nzcv)
+ else return ()) >>
+ if bitU_to_bool ((eq_range (d, (31:ii))) &. (~setflags))
+ then wSP ((),reset_vector_start (set_vector_start_to_length result))
+ else wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_AddSubShiftedRegister (d, n, m, datasize, sub_op, setflags, shift_type, shift_amount) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ ShiftReg (datasize,m,shift_type,shift_amount) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let carry_in = B0 in
+ let (operand2, carry_in) =
+ if bitU_to_bool sub_op
+ then
+ let operand2 =
+ set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length operand2))) in
+ let carry_in = B1 in
+ (operand2,carry_in)
+ else
+ let carry_in = B0 in
+ (operand2,carry_in) in
+ let (result, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ carry_in)) with
+ | (v4v', v5v') -> (v4v',v5v')
+ end in
+ (if bitU_to_bool setflags
+ then wPSTATE_NZCV ((),reset_vector_start nzcv)
+ else return ()) >>
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_AddSubCarry (d, n, m, datasize, sub_op, setflags) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let operand2 =
+ if bitU_to_bool sub_op
+ then set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length operand2)))
+ else operand2 in
+ read_reg_bitfield NZCV "C" >>= fun w__2 ->
+ let (result, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ w__2)) with
+ | (v6v', v7v') -> (v6v',v7v')
+ end in
+ (if bitU_to_bool setflags
+ then wPSTATE_NZCV ((),reset_vector_start nzcv)
+ else return ()) >>
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_ConditionalCompareImmediate (n, datasize, sub_op, condition, flags, imm) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ let operand2 = set_vector_start_to_length imm in
+ let carry_in = B0 in
+ let flags' = flags in
+ ConditionHolds (reset_vector_start condition) >>= fun w__1 ->
+ let (operand2, carry_in, flags') =
+ if bitU_to_bool w__1
+ then
+ let (operand2, carry_in) =
+ if bitU_to_bool sub_op
+ then
+ let operand2 =
+ set_vector_start_to_length
+ (NOT (reset_vector_start (set_vector_start_to_length operand2))) in
+ let carry_in = B1 in
+ (operand2,carry_in)
+ else (operand2,carry_in) in
+ let (_, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ carry_in)) with
+ | (v8v', v9v') -> (v8v',v9v')
+ end in
+ let flags' = nzcv in
+ (operand2,carry_in,flags')
+ else (operand2,carry_in,flags') in
+ wPSTATE_NZCV ((),reset_vector_start flags')
+
+let execute_ConditionalCompareRegister (n, m, datasize, sub_op, condition, flags) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let carry_in = B0 in
+ let flags' = flags in
+ ConditionHolds (reset_vector_start condition) >>= fun w__2 ->
+ let (operand2, carry_in, flags') =
+ if bitU_to_bool w__2
+ then
+ let (operand2, carry_in) =
+ if bitU_to_bool sub_op
+ then
+ let operand2 =
+ set_vector_start_to_length
+ (NOT (reset_vector_start (set_vector_start_to_length operand2))) in
+ let carry_in = B1 in
+ (operand2,carry_in)
+ else (operand2,carry_in) in
+ let (_, nzcv) =
+ match (AddWithCarry
+ (reset_vector_start (set_vector_start_to_length operand1),
+ reset_vector_start (set_vector_start_to_length operand2),
+ carry_in)) with
+ | (v10v', v11v') -> (v10v',v11v')
+ end in
+ let flags' = nzcv in
+ (operand2,carry_in,flags')
+ else (operand2,carry_in,flags') in
+ wPSTATE_NZCV ((),reset_vector_start flags')
+
+let execute_ConditionalSelect (d, n, m, datasize, condition, else_inv, else_inc) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ ConditionHolds (reset_vector_start condition) >>= fun w__2 ->
+ let result =
+ if bitU_to_bool w__2
+ then set_vector_start_to_length operand1
+ else
+ let result = set_vector_start_to_length operand2 in
+ let result =
+ if bitU_to_bool else_inv
+ then
+ set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length result)))
+ else result in
+ if bitU_to_bool else_inc
+ then
+ set_vector_start_to_length
+ (add_VIV (reset_vector_start (set_vector_start_to_length result)) (1:ii))
+ else result in
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_Reverse (d, n, datasize, op) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let V = to_vec_dec ((6:ii),(0:ii)) in
+ let V =
+ match op with
+ | RevOp_REV16 -> Vector [B0;B0;B1;B0;B0;B0] 5 false
+ | RevOp_REV32 -> Vector [B0;B1;B1;B0;B0;B0] 5 false
+ | RevOp_REV64 -> Vector [B1;B1;B1;B0;B0;B0] 5 false
+ | RevOp_RBIT ->
+ if bitU_to_bool (eq_range (datasize, (64:ii)))
+ then Vector [B1;B1;B1;B1;B1;B1] 5 false
+ else Vector [B0;B1;B1;B1;B1;B1] 5 false
+ end in
+ rX (datasize,n) >>= fun w__0 ->
+ let result = set_vector_start_to_length w__0 in
+ let result =
+ (foreach_inc ((0:ii),(5:ii),(1:ii)) result
+ (fun vbit result ->
+ if bitU_to_bool (eq (match (access V vbit) with | B0 -> (0:ii) | B1 -> (1:ii) end, (1:ii)))
+ then
+ let tmp = set_vector_start_to_length result in
+ let vsize = lsl' ((1:ii),vbit) in
+ (foreach_inc ((0:ii),datasize - (1:ii),(2:ii) * vsize) result
+ (fun base result ->
+ let result =
+ update
+ result ((base + vsize) - (1:ii)) base
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length tmp)
+ ((base + ((2:ii) * vsize)) - (1:ii)) (base + vsize))) in
+ update
+ result ((base + ((2:ii) * vsize)) - (1:ii)) (base + vsize)
+ (set_vector_start_to_length
+ (slice (set_vector_start_to_length tmp) ((base + vsize) - (1:ii)) base))))
+ else result)) in
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_CountLeading (d, n, datasize, opcode) =
+ let result = (0:ii) in
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ let result =
+ if bitU_to_bool (eq (opcode, CountOp_CLZ))
+ then CountLeadingZeroBits (reset_vector_start (set_vector_start_to_length operand1))
+ else CountLeadingSignBits (reset_vector_start (set_vector_start_to_length operand1)) in
+ wX (d,reset_vector_start (set_vector_start_to_length (to_vec_dec (datasize,result))))
+
+let execute_Division (d, n, m, datasize, _unsigned) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let result = (0:ii) in
+ let result =
+ if bitU_to_bool (IsZero (reset_vector_start (set_vector_start_to_length operand2)))
+ then (0:ii)
+ else
+ quot
+ (Int (reset_vector_start (set_vector_start_to_length operand1),_unsigned))
+ (Int (reset_vector_start (set_vector_start_to_length operand2),_unsigned)) in
+ wX (d,reset_vector_start (set_vector_start_to_length (to_vec_dec (datasize,result))))
+
+let execute_Shift (d, n, m, datasize, shift_type) =
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ rX (datasize,m) >>= fun w__0 ->
+ let operand2 = set_vector_start_to_length w__0 in
+ ShiftReg
+ (datasize,
+ n,
+ shift_type,
+ modulo (UInt (reset_vector_start (set_vector_start_to_length operand2))) datasize) >>= fun w__1 ->
+ let result = set_vector_start_to_length w__1 in
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute_CRC (d, n, m, size, crc32c) =
+ (if bitU_to_bool (~(HaveCRCExt ()))
+ then UnallocatedEncoding ()
+ else return ()) >>
+ rX ((32:ii),n) >>= fun acc ->
+ rX (size,m) >>= fun w__0 ->
+ let _val = set_vector_start_to_length w__0 in
+ let poly =
+ if bitU_to_bool crc32c
+ then
+ Vector [B0;B0;B0;B1;B1;B1;B1;B0;B1;B1;B0;B1;B1;B1;B0;B0;B0;B1;B1;B0;B1;
+ B1;B1;B1;B0;B1;B0;B0;B0;B0;B0;B1] 31 false
+ else
+ Vector [B0;B0;B0;B0;B0;B1;B0;B0;B1;B1;B0;B0;B0;B0;B0;B1;B0;B0;B0;B1;B1;
+ B1;B0;B1;B1;B0;B1;B1;B0;B1;B1;B1] 31 false in
+ let tempacc =
+ set_vector_start_to_length
+ ((set_vector_start_to_length
+ (BitReverse (reset_vector_start (set_vector_start_to_length acc)))) ^^
+ (set_vector_start_to_length (set_vector_start_to_length (Zeros (length _val))))) in
+ let tempval =
+ set_vector_start_to_length
+ ((set_vector_start_to_length
+ (BitReverse (reset_vector_start (set_vector_start_to_length _val)))) ^^
+ (Zeros (32:ii))) in
+ wX
+ (d,
+ reset_vector_start (set_vector_start_to_length
+ (BitReverse
+ (reset_vector_start (set_vector_start_to_length
+ (Poly32Mod2
+ (reset_vector_start (set_vector_start_to_length
+ (bitwise_xor
+ (set_vector_start_to_length tempacc,
+ set_vector_start_to_length tempval))),
+ reset_vector_start poly)))))))
+
+let execute_MultiplyAddSub (d, n, m, a, destsize, datasize, sub_op) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ rX (destsize,a) >>= fun w__2 ->
+ let operand3 = set_vector_start_to_length w__2 in
+ let result = (0:ii) in
+ let result =
+ if bitU_to_bool sub_op
+ then
+ (UInt (reset_vector_start (set_vector_start_to_length operand3))) -
+ ((UInt (reset_vector_start (set_vector_start_to_length operand1))) *
+ (UInt (reset_vector_start (set_vector_start_to_length operand2))))
+ else
+ (UInt (reset_vector_start (set_vector_start_to_length operand3))) +
+ ((UInt (reset_vector_start (set_vector_start_to_length operand1))) *
+ (UInt (reset_vector_start (set_vector_start_to_length operand2)))) in
+ wX (d,reset_vector_start (set_vector_start_to_length (to_vec_dec (destsize,result))))
+
+let execute_MultiplyAddSubLong (d, n, m, a, destsize, datasize, sub_op, _unsigned) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (datasize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ rX (destsize,a) >>= fun w__2 ->
+ let operand3 = set_vector_start_to_length w__2 in
+ let result = (0:ii) in
+ let result =
+ if bitU_to_bool sub_op
+ then
+ (Int (reset_vector_start (set_vector_start_to_length operand3),_unsigned)) -
+ ((Int (reset_vector_start (set_vector_start_to_length operand1),_unsigned)) *
+ (Int (reset_vector_start (set_vector_start_to_length operand2),_unsigned)))
+ else
+ (Int (reset_vector_start (set_vector_start_to_length operand3),_unsigned)) +
+ ((Int (reset_vector_start (set_vector_start_to_length operand1),_unsigned)) *
+ (Int (reset_vector_start (set_vector_start_to_length operand2),_unsigned))) in
+ wX (d,reset_vector_start (set_vector_start_to_length (to_vec_dec ((64:ii),result))))
+
+let execute_MultiplyHigh (d, n, m, a, destsize, datasize, _unsigned) =
+ rX (destsize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ rX (destsize,m) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let result = (0:ii) in
+ let result =
+ (Int (reset_vector_start (set_vector_start_to_length operand1),_unsigned)) *
+ (Int (reset_vector_start (set_vector_start_to_length operand2),_unsigned)) in
+ wX
+ (d,
+ reset_vector_start (set_vector_start_to_length
+ (slice (to_vec_dec ((128:ii),result)) (127:ii) (64:ii))))
+
+let execute_LogicalShiftedRegister (d, n, m, datasize, setflags, op, shift_type, shift_amount, invert) =
+ rX (datasize,n) >>= fun w__0 ->
+ let operand1 = set_vector_start_to_length w__0 in
+ ShiftReg (datasize,m,shift_type,shift_amount) >>= fun w__1 ->
+ let operand2 = set_vector_start_to_length w__1 in
+ let operand2 =
+ if bitU_to_bool invert
+ then set_vector_start_to_length (NOT (reset_vector_start (set_vector_start_to_length operand2)))
+ else operand2 in
+ let result = set_vector_start_to_length (to_vec_dec (datasize,(0:ii))) in
+ let result =
+ match op with
+ | LogicalOp_AND ->
+ set_vector_start_to_length
+ (bitwise_and (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ | LogicalOp_ORR ->
+ set_vector_start_to_length
+ (bitwise_or (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ | LogicalOp_EOR ->
+ set_vector_start_to_length
+ (bitwise_xor (set_vector_start_to_length operand1, set_vector_start_to_length operand2))
+ end in
+ (if bitU_to_bool setflags
+ then
+ wPSTATE_NZCV
+ ((),
+ reset_vector_start (set_vector_start 3
+ ((set_vector_start_to_length
+ (Vector [access (set_vector_start_to_length result) (datasize - (1:ii))] 0 false)) ^^
+ (set_vector_start_to_length
+ ((set_vector_start_to_length
+ (Vector [IsZeroBit (reset_vector_start (set_vector_start_to_length result))] 0 false)) ^^
+ (set_vector_start_to_length (Vector [B0;B0] 1 false)))))))
+ else return ()) >>
+ wX (d,reset_vector_start (set_vector_start_to_length result))
+
+let execute = function
+
+ | TMStart (t) -> execute_TMStart (t)
+ | TMCommit -> execute_TMCommit ()
+ | TMTest -> execute_TMTest ()
+ | TMAbort (retry,reason) -> execute_TMAbort (retry,reason)
+ | CompareAndBranch (t,datasize,iszero,offset) -> execute_CompareAndBranch (t,datasize,iszero,offset)
+ | BranchConditional (offset,condition) -> execute_BranchConditional (offset,condition)
+ | GenerateExceptionEL1 (imm) -> execute_GenerateExceptionEL1 (imm)
+ | GenerateExceptionEL2 (imm) -> execute_GenerateExceptionEL2 (imm)
+ | GenerateExceptionEL3 (imm) -> execute_GenerateExceptionEL3 (imm)
+ | DebugBreakpoint (comment) -> execute_DebugBreakpoint (comment)
+ | ExternalDebugBreakpoint -> execute_ExternalDebugBreakpoint ()
+ | DebugSwitchToExceptionLevel (target_level) -> execute_DebugSwitchToExceptionLevel (target_level)
+ | MoveSystemImmediate (operand,field') -> execute_MoveSystemImmediate (operand,field')
+ | Hint (op) -> execute_Hint (op)
+ | ClearExclusiveMonitor (imm) -> execute_ClearExclusiveMonitor (imm)
+ | Barrier (op,domain,types) -> execute_Barrier (op,domain,types)
+ | System (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result) -> execute_System (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result)
+ | MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read) -> execute_MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read)
+ | ImplementationDefinedTestBeginEnd (isEnd) -> execute_ImplementationDefinedTestBeginEnd (isEnd)
+ | ImplementationDefinedStopFetching -> execute_ImplementationDefinedStopFetching ()
+ | ImplementationDefinedThreadStart -> execute_ImplementationDefinedThreadStart ()
+ | TestBitAndBranch (t,datasize,bit_pos,bit_val,offset) -> execute_TestBitAndBranch (t,datasize,bit_pos,bit_val,offset)
+ | BranchImmediate (branch_type,offset) -> execute_BranchImmediate (branch_type,offset)
+ | BranchRegister (n,branch_type) -> execute_BranchRegister (n,branch_type)
+ | ExceptionReturn -> execute_ExceptionReturn ()
+ | DebugRestorePState -> execute_DebugRestorePState ()
+ | LoadLiteral (t,memop,_signed,size,offset,datasize) -> execute_LoadLiteral (t,memop,_signed,size,offset,datasize)
+ | LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize) -> execute_LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize)
+ | LoadStorePairNonTemp (wback,postindex,n,t,t2,acctype,memop,scale,datasize,offset) -> execute_LoadStorePairNonTemp (wback,postindex,n,t,t2,acctype,memop,scale,datasize,offset)
+ | LoadImmediate (n,t,acctype,memop,_signed,wback,postindex,offset,regsize,datasize) -> execute_LoadImmediate (n,t,acctype,memop,_signed,wback,postindex,offset,regsize,datasize)
+ | LoadRegister (n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize) -> execute_LoadRegister (n,t,m,acctype,memop,_signed,wback,postindex,extend_type,shift,regsize,datasize)
+ | LoadStorePair (wback,postindex,n,t,t2,acctype,memop,_signed,datasize,offset) -> execute_LoadStorePair (wback,postindex,n,t,t2,acctype,memop,_signed,datasize,offset)
+ | AddSubImmediate (d,n,datasize,sub_op,setflags,imm) -> execute_AddSubImmediate (d,n,datasize,sub_op,setflags,imm)
+ | BitfieldMove (d,n,datasize,inzero,extend,R,S,wmask,tmask) -> execute_BitfieldMove (d,n,datasize,inzero,extend,R,S,wmask,tmask)
+ | ExtractRegister (d,n,m,datasize,lsb) -> execute_ExtractRegister (d,n,m,datasize,lsb)
+ | LogicalImmediate (d,n,datasize,setflags,op,imm) -> execute_LogicalImmediate (d,n,datasize,setflags,op,imm)
+ | MoveWide (d,datasize,imm,pos,opcode) -> execute_MoveWide (d,datasize,imm,pos,opcode)
+ | Address (d,page,imm) -> execute_Address (d,page,imm)
+ | AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift) -> execute_AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift)
+ | AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount) -> execute_AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount)
+ | AddSubCarry (d,n,m,datasize,sub_op,setflags) -> execute_AddSubCarry (d,n,m,datasize,sub_op,setflags)
+ | ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm) -> execute_ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm)
+ | ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags) -> execute_ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags)
+ | ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc) -> execute_ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc)
+ | Reverse (d,n,datasize,op) -> execute_Reverse (d,n,datasize,op)
+ | CountLeading (d,n,datasize,opcode) -> execute_CountLeading (d,n,datasize,opcode)
+ | Division (d,n,m,datasize,_unsigned) -> execute_Division (d,n,m,datasize,_unsigned)
+ | Shift (d,n,m,datasize,shift_type) -> execute_Shift (d,n,m,datasize,shift_type)
+ | CRC (d,n,m,size,crc32c) -> execute_CRC (d,n,m,size,crc32c)
+ | MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op) -> execute_MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op)
+ | MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,_unsigned) -> execute_MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,_unsigned)
+ | MultiplyHigh (d,n,m,a,destsize,datasize,_unsigned) -> execute_MultiplyHigh (d,n,m,a,destsize,datasize,_unsigned)
+ | LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert) -> execute_LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert)
+ end
+
diff --git a/aarch64_small/armV8_embed_types.lem b/aarch64_small/armV8_embed_types.lem
new file mode 100644
index 00000000..b3728e62
--- /dev/null
+++ b/aarch64_small/armV8_embed_types.lem
@@ -0,0 +1,659 @@
+(*Generated by Sail from armV8.sail.*)
+open import Pervasives_extra
+open import Sail_impl_base
+open import Sail_values
+type boolean = bitU
+
+type integer' = ii
+
+type uinteger = ii
+
+type reg_size = vector bitU
+
+type reg_index = integer
+
+type SIMD_index = integer
+
+let _PC = Register "_PC" 64 63 false []
+
+let TxNestingLevel = Register "TxNestingLevel" 8 7 false []
+
+let build_TMSTATUS_type regname =
+ Register regname 64 63 false
+ [("IMP", (16 , 16));
+ ("DBG", (15 , 15));
+ ("MEM", (14 , 14));
+ ("ERR", (13 , 13));
+ ("INV", (12 , 12));
+ ("SIZE", (11 , 11));
+ ("NEST", (10 , 10));
+ ("ABRT", (9 , 9));
+ ("RTRY", (8 , 8));
+ ("REASON", (4 , 0))]
+
+let R30 = Register "R30" 64 63 false []
+
+let R29 = Register "R29" 64 63 false []
+
+let R28 = Register "R28" 64 63 false []
+
+let R27 = Register "R27" 64 63 false []
+
+let R26 = Register "R26" 64 63 false []
+
+let R25 = Register "R25" 64 63 false []
+
+let R24 = Register "R24" 64 63 false []
+
+let R23 = Register "R23" 64 63 false []
+
+let R22 = Register "R22" 64 63 false []
+
+let R21 = Register "R21" 64 63 false []
+
+let R20 = Register "R20" 64 63 false []
+
+let R19 = Register "R19" 64 63 false []
+
+let R18 = Register "R18" 64 63 false []
+
+let R17 = Register "R17" 64 63 false []
+
+let R16 = Register "R16" 64 63 false []
+
+let R15 = Register "R15" 64 63 false []
+
+let R14 = Register "R14" 64 63 false []
+
+let R13 = Register "R13" 64 63 false []
+
+let R12 = Register "R12" 64 63 false []
+
+let R11 = Register "R11" 64 63 false []
+
+let R10 = Register "R10" 64 63 false []
+
+let R9 = Register "R9" 64 63 false []
+
+let R8 = Register "R8" 64 63 false []
+
+let R7 = Register "R7" 64 63 false []
+
+let R6 = Register "R6" 64 63 false []
+
+let R5 = Register "R5" 64 63 false []
+
+let R4 = Register "R4" 64 63 false []
+
+let R3 = Register "R3" 64 63 false []
+
+let R2 = Register "R2" 64 63 false []
+
+let R1 = Register "R1" 64 63 false []
+
+let R0 = Register "R0" 64 63 false []
+
+let V31 = Register "V31" 128 127 false []
+
+let V30 = Register "V30" 128 127 false []
+
+let V29 = Register "V29" 128 127 false []
+
+let V28 = Register "V28" 128 127 false []
+
+let V27 = Register "V27" 128 127 false []
+
+let V26 = Register "V26" 128 127 false []
+
+let V25 = Register "V25" 128 127 false []
+
+let V24 = Register "V24" 128 127 false []
+
+let V23 = Register "V23" 128 127 false []
+
+let V22 = Register "V22" 128 127 false []
+
+let V21 = Register "V21" 128 127 false []
+
+let V20 = Register "V20" 128 127 false []
+
+let V19 = Register "V19" 128 127 false []
+
+let V18 = Register "V18" 128 127 false []
+
+let V17 = Register "V17" 128 127 false []
+
+let V16 = Register "V16" 128 127 false []
+
+let V15 = Register "V15" 128 127 false []
+
+let V14 = Register "V14" 128 127 false []
+
+let V13 = Register "V13" 128 127 false []
+
+let V12 = Register "V12" 128 127 false []
+
+let V11 = Register "V11" 128 127 false []
+
+let V10 = Register "V10" 128 127 false []
+
+let V9 = Register "V9" 128 127 false []
+
+let V8 = Register "V8" 128 127 false []
+
+let V7 = Register "V7" 128 127 false []
+
+let V6 = Register "V6" 128 127 false []
+
+let V5 = Register "V5" 128 127 false []
+
+let V4 = Register "V4" 128 127 false []
+
+let V3 = Register "V3" 128 127 false []
+
+let V2 = Register "V2" 128 127 false []
+
+let V1 = Register "V1" 128 127 false []
+
+let V0 = Register "V0" 128 127 false []
+
+type IMPLEMENTATION_DEFINED_type =
+ <| IMPLEMENTATION_DEFINED_type_HaveCRCExt : bitU;
+ IMPLEMENTATION_DEFINED_type_HaveAArch32EL : bitU;
+ IMPLEMENTATION_DEFINED_type_HaveAnyAArch32 : bitU;
+ IMPLEMENTATION_DEFINED_type_HaveEL2 : bitU;
+ IMPLEMENTATION_DEFINED_type_HaveEL3 : bitU;
+ IMPLEMENTATION_DEFINED_type_HighestELUsingAArch32 : bitU;
+ IMPLEMENTATION_DEFINED_type_IsSecureBelowEL3 : bitU; |>
+
+let build_HCR_type regname =
+ Register regname 64 63 false
+ [("ID", (33 , 33));
+ ("CD", (32 , 32));
+ ("RW", (31 , 31));
+ ("TRVM", (30 , 30));
+ ("HCD", (29 , 29));
+ ("TDZ", (28 , 28));
+ ("TGE", (27 , 27));
+ ("TVM", (26 , 26));
+ ("TTLB", (25 , 25));
+ ("TPU", (24 , 24));
+ ("TPC", (23 , 23));
+ ("TSW", (22 , 22));
+ ("TACR", (21 , 21));
+ ("TIDCP", (20 , 20));
+ ("TSC", (19 , 19));
+ ("TID3", (18 , 18));
+ ("TID2", (17 , 17));
+ ("TID1", (16 , 16));
+ ("TID0", (15 , 15));
+ ("TWE", (14 , 14));
+ ("TWI", (13 , 13));
+ ("DC", (12 , 12));
+ ("BSU", (11 , 10));
+ ("FB", (9 , 9));
+ ("VSE", (8 , 8));
+ ("VI", (7 , 7));
+ ("VF", (6 , 6));
+ ("AMO", (5 , 5));
+ ("IMO", (4 , 4));
+ ("FMO", (3 , 3));
+ ("PTW", (2 , 2));
+ ("SWIO", (1 , 1));
+ ("VM", (0 , 0))]
+
+let build_ID_AA64MMFR0_type regname =
+ Register regname 64 63 false
+ [("TGran4", (31 , 28));
+ ("TGran64", (27 , 24));
+ ("TGran16", (23 , 20));
+ ("BigEndEL0", (19 , 16));
+ ("SNSMem", (15 , 12));
+ ("BigEnd", (11 , 8));
+ ("ASIDBits", (7 , 4));
+ ("PARange", (3 , 0))]
+
+let RVBAR_EL1 = Register "RVBAR_EL1" 64 63 false []
+
+let RVBAR_EL2 = Register "RVBAR_EL2" 64 63 false []
+
+let RVBAR_EL3 = Register "RVBAR_EL3" 64 63 false []
+
+let build_SCRType regname =
+ Register regname 32 31 false
+ [("TWE", (13 , 13));
+ ("TWI", (12 , 12));
+ ("ST", (11 , 11));
+ ("RW", (10 , 10));
+ ("SIF", (9 , 9));
+ ("HCE", (8 , 8));
+ ("SMD", (7 , 7));
+ ("EA", (3 , 3));
+ ("FIQ", (2 , 2));
+ ("IRQ", (1 , 1));
+ ("NS", (0 , 0))]
+
+let build_SCTLR_EL1_type regname =
+ Register regname 32 31 false
+ [("UCI", (26 , 26));
+ ("EE", (25 , 25));
+ ("E0E", (24 , 24));
+ ("WXN", (19 , 19));
+ ("nTWE", (18 , 18));
+ ("nTWI", (16 , 16));
+ ("UCT", (15 , 15));
+ ("DZE", (14 , 14));
+ ("I", (12 , 12));
+ ("UMA", (9 , 9));
+ ("SED", (8 , 8));
+ ("ITD", (7 , 7));
+ ("CP15BEN", (5 , 5));
+ ("SA0", (4 , 4));
+ ("SA", (3 , 3));
+ ("C", (2 , 2));
+ ("A", (1 , 1));
+ ("M", (0 , 0))]
+
+let build_SCTLR_type regname =
+ Register regname 32 31 false
+ [("EE", (25 , 25));
+ ("WXN", (19 , 19));
+ ("I", (12 , 12));
+ ("SA", (3 , 3));
+ ("C", (2 , 2));
+ ("A", (1 , 1));
+ ("M", (0 , 0))]
+
+let build_TCR_EL1_type regname =
+ Register regname 64 63 false
+ [("TBI1", (38 , 38));
+ ("TBI0", (37 , 37));
+ ("AS", (36 , 36));
+ ("IPS", (34 , 32));
+ ("TG1", (31 , 30));
+ ("SH1", (29 , 28));
+ ("ORGN1", (27 , 26));
+ ("IRGN1", (25 , 24));
+ ("EPD1", (23 , 23));
+ ("A1", (22 , 22));
+ ("T1SZ", (21 , 16));
+ ("TG0", (15 , 14));
+ ("SH0", (13 , 12));
+ ("ORGN0", (11 , 10));
+ ("IRGN0", (9 , 8));
+ ("EPD0", (7 , 7));
+ ("T0SZ", (5 , 0))]
+
+let build_TCR_type regname =
+ Register regname 32 31 false
+ [("TBI", (20 , 20));
+ ("PS", (18 , 16));
+ ("TG0", (15 , 14));
+ ("SH0", (13 , 12));
+ ("ORGN0", (11 , 10));
+ ("IRGN0", (9 , 8));
+ ("T0SZ", (5 , 0))]
+
+let TPIDR_EL0 = Register "TPIDR_EL0" 64 63 false []
+
+let TPIDR_EL1 = Register "TPIDR_EL1" 64 63 false []
+
+let TPIDR_EL2 = Register "TPIDR_EL2" 64 63 false []
+
+let TPIDR_EL3 = Register "TPIDR_EL3" 64 63 false []
+
+let build_DBGPRCR_type regname = Register regname 32 31 false [("CORENPDRQ", (0 , 0))]
+
+let build_OSDLR_type regname = Register regname 32 31 false [("DLK", (0 , 0))]
+
+let build_EDSCR_type regname =
+ Register regname 32 31 false
+ [("RXfull", (30 , 30));
+ ("TXfull", (29 , 29));
+ ("ITO", (28 , 28));
+ ("RXO", (27 , 27));
+ ("TXU", (26 , 26));
+ ("PipeAdv", (25 , 25));
+ ("ITE", (24 , 24));
+ ("INTdis", (23 , 22));
+ ("TDA", (21 , 21));
+ ("MA", (20 , 20));
+ ("NS", (18 , 18));
+ ("SDD", (16 , 16));
+ ("HDE", (14 , 14));
+ ("RW", (13 , 10));
+ ("EL", (9 , 8));
+ ("A", (7 , 7));
+ ("ERR", (6 , 6));
+ ("STATUS", (5 , 0))]
+
+let build_TXIDR_EL0_type regname = Register regname 64 63 false [("DEPTH", (7 , 0))]
+
+let build_CurrentEL_type regname = Register regname 32 31 false [("EL", (3 , 2))]
+
+let build_DAIF_type regname =
+ Register regname 32 31 false
+ [("D", (9 , 9)); ("A", (8 , 8)); ("I", (7 , 7)); ("F", (6 , 6))]
+
+let build_NZCV_type regname =
+ Register regname 32 31 false
+ [("N", (31 , 31)); ("Z", (30 , 30)); ("C", (29 , 29)); ("V", (28 , 28))]
+
+let SP_EL0 = Register "SP_EL0" 64 63 false []
+
+let SP_EL1 = Register "SP_EL1" 64 63 false []
+
+let SP_EL2 = Register "SP_EL2" 64 63 false []
+
+let SP_EL3 = Register "SP_EL3" 64 63 false []
+
+let build_SPSel_type regname = Register regname 32 31 false [("SP", (0 , 0))]
+
+let build_SPSR_type regname =
+ Register regname 32 31 false
+ [("N", (31 , 31));
+ ("Z", (30 , 30));
+ ("C", (29 , 29));
+ ("V", (28 , 28));
+ ("SS", (21 , 21));
+ ("IL", (20 , 20));
+ ("E", (9 , 9));
+ ("A", (8 , 8));
+ ("I", (7 , 7));
+ ("F", (6 , 6));
+ ("M4", (4 , 4));
+ ("M3_0", (3 , 0))]
+
+let ELR_EL1 = Register "ELR_EL1" 64 63 false []
+
+let ELR_EL2 = Register "ELR_EL2" 64 63 false []
+
+let ELR_EL3 = Register "ELR_EL3" 64 63 false []
+
+let build_DBGOSDLR_type regname = Register regname 32 31 false [("DLK", (0 , 0))]
+
+let PSTATE_nRW = Register "PSTATE_nRW" 1 0 false []
+
+let PSTATE_E = Register "PSTATE_E" 1 0 false []
+
+let PSTATE_M = Register "PSTATE_M" 5 4 false []
+
+type AccType =
+ AccType_NORMAL
+ | AccType_VEC
+ | AccType_STREAM
+ | AccType_VECSTREAM
+ | AccType_ATOMIC
+ | AccType_ORDERED
+ | AccType_UNPRIV
+ | AccType_IFETCH
+ | AccType_PTW
+ | AccType_DC
+ | AccType_IC
+ | AccType_AT
+
+
+type MBReqDomain =
+ MBReqDomain_Nonshareable
+ | MBReqDomain_InnerShareable
+ | MBReqDomain_OuterShareable
+ | MBReqDomain_FullSystem
+
+
+type MBReqTypes = MBReqTypes_Reads | MBReqTypes_Writes | MBReqTypes_All
+
+
+type BranchType =
+ BranchType_CALL
+ | BranchType_ERET
+ | BranchType_DBGEXIT
+ | BranchType_RET
+ | BranchType_JMP
+ | BranchType_EXCEPTION
+ | BranchType_UNKNOWN
+
+
+type MoveWideOp = MoveWideOp_N | MoveWideOp_Z | MoveWideOp_K
+
+
+type DeviceType = DeviceType_GRE | DeviceType_nGRE | DeviceType_nGnRE | DeviceType_nGnRnE
+
+
+type Fault =
+ Fault_None
+ | Fault_AccessFlag
+ | Fault_Alignment
+ | Fault_Background
+ | Fault_Domain
+ | Fault_Permission
+ | Fault_Translation
+ | Fault_AddressSize
+ | Fault_SyncExternal
+ | Fault_SyncExternalOnWalk
+ | Fault_SyncParity
+ | Fault_SyncParityOnWalk
+ | Fault_AsyncParity
+ | Fault_AsyncExternal
+ | Fault_Debug
+ | Fault_TLBConflict
+ | Fault_Lockdown
+ | Fault_Exclusive
+ | Fault_ICacheMaint
+
+
+type MemAttrHints =
+ <| MemAttrHints_attrs : vector bitU;
+ MemAttrHints_hints : vector bitU;
+ MemAttrHints_transient : bitU; |>
+
+type MemType = MemType_Normal | MemType_Device
+
+
+type FullAddress = <| FullAddress_physicaladdress : vector bitU; FullAddress_NS : bitU; |>
+
+type PrefetchHint = Prefetch_READ | Prefetch_WRITE | Prefetch_EXEC
+
+
+type CountOp = CountOp_CLZ | CountOp_CLS | CountOp_CNT
+
+
+type ExtendType =
+ ExtendType_SXTB
+ | ExtendType_SXTH
+ | ExtendType_SXTW
+ | ExtendType_SXTX
+ | ExtendType_UXTB
+ | ExtendType_UXTH
+ | ExtendType_UXTW
+ | ExtendType_UXTX
+
+
+type RevOp = RevOp_RBIT | RevOp_REV16 | RevOp_REV32 | RevOp_REV64
+
+
+type ShiftType = ShiftType_LSL | ShiftType_LSR | ShiftType_ASR | ShiftType_ROR
+
+
+type LogicalOp = LogicalOp_AND | LogicalOp_EOR | LogicalOp_ORR
+
+
+type MemOp = MemOp_LOAD | MemOp_STORE | MemOp_PREFETCH
+
+
+type MemBarrierOp = MemBarrierOp_DSB | MemBarrierOp_DMB | MemBarrierOp_ISB
+
+
+type SystemHintOp =
+ SystemHintOp_NOP
+ | SystemHintOp_YIELD
+ | SystemHintOp_WFE
+ | SystemHintOp_WFI
+ | SystemHintOp_SEV
+ | SystemHintOp_SEVL
+
+
+type PSTATEField = PSTATEField_DAIFSet | PSTATEField_DAIFClr | PSTATEField_SP
+
+
+type signalValue = LOw | HIGH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+let TMAbortEffect = build_TMSTATUS_type "TMAbortEffect"
+
+let TMStartEffect = build_TMSTATUS_type "TMStartEffect"
+
+let HCR_EL2 = build_HCR_type "HCR_EL2"
+
+let ID_AA64MMFR0_EL1 = build_ID_AA64MMFR0_type "ID_AA64MMFR0_EL1"
+
+let SCR_EL3 = build_SCRType "SCR_EL3"
+
+let SCTLR_EL1 = build_SCTLR_EL1_type "SCTLR_EL1"
+
+let SCTLR_EL2 = build_SCTLR_type "SCTLR_EL2"
+
+let SCTLR_EL3 = build_SCTLR_type "SCTLR_EL3"
+
+let TCR_EL1 = build_TCR_EL1_type "TCR_EL1"
+
+let TCR_EL2 = build_TCR_type "TCR_EL2"
+
+let TCR_EL3 = build_TCR_type "TCR_EL3"
+
+let DBGPRCR_EL1 = build_DBGPRCR_type "DBGPRCR_EL1"
+
+let OSDLR_EL1 = build_OSDLR_type "OSDLR_EL1"
+
+let EDSCR = build_EDSCR_type "EDSCR"
+
+let TXIDR_EL0 = build_TXIDR_EL0_type "TXIDR_EL0"
+
+let CurrentEL = build_CurrentEL_type "CurrentEL"
+
+let DAIF = build_DAIF_type "DAIF"
+
+let NZCV = build_NZCV_type "NZCV"
+
+let SPSel = build_SPSel_type "SPSel"
+
+let SPSR_EL1 = build_SPSR_type "SPSR_EL1"
+
+let SPSR_EL2 = build_SPSR_type "SPSR_EL2"
+
+let SPSR_EL3 = build_SPSR_type "SPSR_EL3"
+
+let SCR = build_SCRType "SCR"
+
+let DBGOSDLR = build_DBGOSDLR_type "DBGOSDLR"
+
+let DBGPRCR = build_DBGPRCR_type "DBGPRCR"
+
+type MemoryAttributes = <| MemoryAttributes_type' : MemType; MemoryAttributes_shareable : bitU; |>
+
+type regfps = list regfp
+
+type niafps = list niafp
+
+
+
+type read_buffer_type =
+ <| read_buffer_type_acctype : AccType;
+ read_buffer_type_exclusive : bitU;
+ read_buffer_type_address : vector bitU;
+ read_buffer_type_size : uinteger; |>
+
+type write_buffer_type =
+ <| write_buffer_type_acctype : AccType;
+ write_buffer_type_exclusive : bitU;
+ write_buffer_type_address : vector bitU;
+ write_buffer_type_value : vector bitU;
+ write_buffer_type_size : uinteger; |>
+
+type FaultRecord =
+ <| FaultRecord_type' : Fault;
+ FaultRecord_acctype : AccType;
+ FaultRecord_ipaddress : vector bitU;
+ FaultRecord_s2fs1walk : bitU;
+ FaultRecord_write : bitU;
+ FaultRecord_level : uinteger;
+ FaultRecord_extflag : bitU;
+ FaultRecord_secondstage : bitU;
+ FaultRecord_domain : vector bitU;
+ FaultRecord_debugmoe : vector bitU; |>
+
+
+
+type ast =
+ | Unallocated
+ | ImplementationDefinedTestBeginEnd of (bitU)
+ | ImplementationDefinedStopFetching
+ | ImplementationDefinedThreadStart
+ | TMStart of (reg_index)
+ | TMCommit
+ | TMAbort of (bitU * vector bitU)
+ | TMTest
+ | CompareAndBranch of (reg_index * integer * bitU * vector bitU)
+ | BranchConditional of (vector bitU * vector bitU)
+ | GenerateExceptionEL1 of (vector bitU)
+ | GenerateExceptionEL2 of (vector bitU)
+ | GenerateExceptionEL3 of (vector bitU)
+ | DebugBreakpoint of (vector bitU)
+ | ExternalDebugBreakpoint
+ | DebugSwitchToExceptionLevel of (vector bitU)
+ | MoveSystemImmediate of (vector bitU * PSTATEField)
+ | Hint of (SystemHintOp)
+ | ClearExclusiveMonitor of (uinteger)
+ | Barrier of (MemBarrierOp * MBReqDomain * MBReqTypes)
+ | System of (reg_index * uinteger * uinteger * uinteger * uinteger * uinteger * bitU)
+ | MoveSystemRegister of (reg_index * uinteger * uinteger * uinteger * uinteger * uinteger * bitU)
+ | TestBitAndBranch of (reg_index * integer * uinteger * bitU * vector bitU)
+ | BranchImmediate of (BranchType * vector bitU)
+ | BranchRegister of (reg_index * BranchType)
+ | ExceptionReturn
+ | DebugRestorePState
+ | LoadLiteral of (reg_index * MemOp * bitU * uinteger * vector bitU * integer)
+ | LoadStoreAcqExc of (reg_index * reg_index * reg_index * reg_index * AccType * bitU * bitU * MemOp * uinteger * integer * integer)
+ | LoadStorePairNonTemp of (bitU * bitU * reg_index * reg_index * reg_index * AccType * MemOp * uinteger * integer * vector bitU)
+ | LoadImmediate of (reg_index * reg_index * AccType * MemOp * bitU * bitU * bitU * vector bitU * integer * integer)
+ | LoadRegister of (reg_index * reg_index * reg_index * AccType * MemOp * bitU * bitU * bitU * ExtendType * uinteger * integer * integer)
+ | LoadStorePair of (bitU * bitU * reg_index * reg_index * reg_index * AccType * MemOp * bitU * integer * vector bitU)
+ | AddSubImmediate of (reg_index * reg_index * integer * bitU * bitU * vector bitU)
+ | BitfieldMove of (reg_index * reg_index * integer * bitU * bitU * uinteger * uinteger * vector bitU * vector bitU)
+ | ExtractRegister of (reg_index * reg_index * reg_index * integer * uinteger)
+ | LogicalImmediate of (reg_index * reg_index * integer * bitU * LogicalOp * vector bitU)
+ | MoveWide of (reg_index * integer * vector bitU * uinteger * MoveWideOp)
+ | Address of (reg_index * bitU * vector bitU)
+ | AddSubExtendRegister of (reg_index * reg_index * reg_index * integer * bitU * bitU * ExtendType * integer)
+ | AddSubShiftedRegister of (reg_index * reg_index * reg_index * integer * bitU * bitU * ShiftType * integer)
+ | AddSubCarry of (reg_index * reg_index * reg_index * integer * bitU * bitU)
+ | ConditionalCompareImmediate of (reg_index * integer * bitU * vector bitU * vector bitU * vector bitU)
+ | ConditionalCompareRegister of (reg_index * reg_index * integer * bitU * vector bitU * vector bitU)
+ | ConditionalSelect of (reg_index * reg_index * reg_index * integer * vector bitU * bitU * bitU)
+ | Reverse of (reg_index * reg_index * integer * RevOp)
+ | CountLeading of (reg_index * reg_index * integer * CountOp)
+ | Division of (reg_index * reg_index * reg_index * integer * bitU)
+ | Shift of (reg_index * reg_index * reg_index * integer * ShiftType)
+ | CRC of (reg_index * reg_index * reg_index * integer * bitU)
+ | MultiplyAddSub of (reg_index * reg_index * reg_index * reg_index * integer * integer * bitU)
+ | MultiplyAddSubLong of (reg_index * reg_index * reg_index * reg_index * integer * integer * bitU * bitU)
+ | MultiplyHigh of (reg_index * reg_index * reg_index * reg_index * integer * integer * bitU)
+ | LogicalShiftedRegister of (reg_index * reg_index * reg_index * integer * bitU * LogicalOp * ShiftType * integer * bitU)
+
+
+type AddressDescriptor =
+ <| AddressDescriptor_fault : FaultRecord;
+ AddressDescriptor_memattrs : MemoryAttributes;
+ AddressDescriptor_paddress : FullAddress; |>
+
diff --git a/aarch64_small/armV8_extras.lem b/aarch64_small/armV8_extras.lem
new file mode 100644
index 00000000..9a187ecb
--- /dev/null
+++ b/aarch64_small/armV8_extras.lem
@@ -0,0 +1,77 @@
+open import Pervasives
+open import Interp_ast
+open import Interp_interface
+open import Sail_impl_base
+open import Interp_inter_imp
+import Set_extra
+
+let memory_parameter_transformer mode v =
+ match v with
+ | Interp_ast.V_tuple [location;length] ->
+ let (v,loc_regs) = extern_with_track mode extern_vector_value location in
+
+ match length with
+ | Interp_ast.V_lit (L_aux (L_num len) _) ->
+ (v,(natFromInteger len),loc_regs)
+
+ | Interp_ast.V_track (Interp_ast.V_lit (L_aux (L_num len) _)) size_regs ->
+ match loc_regs with
+ | Nothing -> (v,(natFromInteger len),Just (List.map (fun r -> extern_reg r Nothing) (Set_extra.toList size_regs)))
+ | Just loc_regs -> (v,(natFromInteger len),Just (loc_regs++(List.map (fun r -> extern_reg r Nothing) (Set_extra.toList size_regs))))
+ end
+
+ | _ -> Assert_extra.failwith "expected 'V_lit (L_aux (L_num _) _)' or 'V_track (V_lit (L_aux (L_num len) _)) _'"
+ end
+ | _ -> Assert_extra.failwith "expected 'V_tuple [_;_]'"
+ end
+
+let aArch64_read_memory_functions : memory_reads =
+ [ ("rMem_NORMAL", (MR Read_plain memory_parameter_transformer));
+ ("rMem_STREAM", (MR Read_stream memory_parameter_transformer));
+ ("rMem_ORDERED", (MR Read_acquire memory_parameter_transformer));
+ ("rMem_ATOMIC", (MR Read_exclusive memory_parameter_transformer));
+ ("rMem_ATOMIC_ORDERED", (MR Read_exclusive_acquire memory_parameter_transformer));
+ ]
+
+let aArch64_memory_writes : memory_writes = []
+ (* [ ("wMem_NORMAL", (MW Write_plain memory_parameter_transformer Nothing));
+ ("wMem_ORDERED", (MW Write_release memory_parameter_transformer Nothing));
+ ("wMem_ATOMIC", (MW Write_exclusive memory_parameter_transformer Nothing));
+ ("wMem_ATOMIC_ORDERED", (MW Write_exclusive_release memory_parameter_transformer Nothing));
+ ] *)
+
+let aArch64_memory_eas : memory_write_eas =
+ [ ("wMem_Addr_NORMAL", (MEA Write_plain memory_parameter_transformer));
+ ("wMem_Addr_ORDERED", (MEA Write_release memory_parameter_transformer));
+ ("wMem_Addr_ATOMIC", (MEA Write_exclusive memory_parameter_transformer));
+ ("wMem_Addr_ATOMIC_ORDERED", (MEA Write_exclusive_release memory_parameter_transformer));
+ ]
+
+let aArch64_memory_vals : memory_write_vals =
+ [ ("wMem_Val_NORMAL", (MV (fun mode v -> Nothing) Nothing));
+ ("wMem_Val_ATOMIC", (MV (fun mode v -> Nothing)
+ (Just
+ (fun (IState interp context) b ->
+ (*ppcmem2 provides true for success and false for failure; but the status for ARM is reversed*)
+ let bit = Interp_ast.V_lit (L_aux (if b then L_zero else L_one) Interp_ast.Unknown)in
+ (IState (Interp.add_answer_to_stack interp bit) context)))));
+ ]
+
+let aArch64_excl_res : excl_res =
+ let f = fun (IState interp context) b ->
+ let bool_res = Interp_ast.V_lit (L_aux (if b then L_one else L_zero) Interp_ast.Unknown) in
+ IState (Interp.add_answer_to_stack interp bool_res) context
+ in
+ Just ("speculate_exclusive_success", (ER (Just f)))
+
+let aArch64_barrier_functions =
+ [ ("DataMemoryBarrier_Reads", Barrier_DMB_LD);
+ ("DataMemoryBarrier_Writes", Barrier_DMB_ST);
+ ("DataMemoryBarrier_All", Barrier_DMB);
+ ("DataSynchronizationBarrier_Reads", Barrier_DSB_LD);
+ ("DataSynchronizationBarrier_Writes", Barrier_DSB_ST);
+ ("DataSynchronizationBarrier_All", Barrier_DSB);
+ ("InstructionSynchronizationBarrier", Barrier_ISB);
+
+ ("TMCommitEffect", Barrier_TM_COMMIT);
+ ]
diff --git a/aarch64_small/armV8_extras_embed.lem b/aarch64_small/armV8_extras_embed.lem
new file mode 100644
index 00000000..86570fc4
--- /dev/null
+++ b/aarch64_small/armV8_extras_embed.lem
@@ -0,0 +1,59 @@
+open import Pervasives
+open import Sail_impl_base
+open import Sail_values
+open import Prompt
+
+val rMem_NORMAL : (vector bitU * integer) -> M (vector bitU)
+val rMem_STREAM : (vector bitU * integer) -> M (vector bitU)
+val rMem_ORDERED : (vector bitU * integer) -> M (vector bitU)
+val rMem_ATOMICL : (vector bitU * integer) -> M (vector bitU)
+val rMem_ATOMIC_ORDERED : (vector bitU * integer) -> M (vector bitU)
+
+let rMem_NORMAL (addr,size) = read_mem false Read_plain addr size
+let rMem_STREAM (addr,size) = read_mem false Read_stream addr size
+let rMem_ORDERED (addr,size) = read_mem false Read_acquire addr size
+let rMem_ATOMIC (addr,size) = read_mem false Read_exclusive addr size
+let rMem_ATOMIC_ORDERED (addr,size) = read_mem false Read_exclusive_acquire addr size
+
+val wMem_Addr_NORMAL : (vector bitU * integer) -> M unit
+val wMem_Addr_ORDERED : (vector bitU * integer) -> M unit
+val wMem_Addr_ATOMIC : (vector bitU * integer) -> M unit
+val wMem_Addr_ATOMIC_ORDERED : (vector bitU * integer) -> M unit
+
+let wMem_Addr_NORMAL (addr,size) = write_mem_ea Write_plain addr size
+let wMem_Addr_ORDERED (addr,size) = write_mem_ea Write_release addr size
+let wMem_Addr_ATOMIC (addr,size) = write_mem_ea Write_exclusive addr size
+let wMem_Addr_ATOMIC_ORDERED (addr,size) = write_mem_ea Write_exclusive_release addr size
+
+
+val wMem_Val_NORMAL : (integer * vector bitU) -> M unit
+val wMem_Val_ATOMIC : (integer * vector bitU) -> M bitU
+
+let wMem_Val_NORMAL (_,v) = write_mem_val v >>= fun _ -> return ()
+(* in ARM the status returned is inversed *)
+let wMem_Val_ATOMIC (_,v) = write_mem_val v >>= fun b -> return (if b then B0 else B1)
+
+let speculate_exclusive_success () = excl_result () >>= fun b -> return (if b then B1 else B0)
+
+val DataMemoryBarrier_Reads : unit -> M unit
+val DataMemoryBarrier_Writes : unit -> M unit
+val DataMemoryBarrier_All : unit -> M unit
+val DataSynchronizationBarrier_Reads : unit -> M unit
+val DataSynchronizationBarrier_Writes : unit -> M unit
+val DataSynchronizationBarrier_All : unit -> M unit
+val InstructionSynchronizationBarrier : unit -> M unit
+
+let DataMemoryBarrier_Reads () = barrier Barrier_DMB_LD
+let DataMemoryBarrier_Writes () = barrier Barrier_DMB_ST
+let DataMemoryBarrier_All () = barrier Barrier_DMB
+let DataSynchronizationBarrier_Reads () = barrier Barrier_DSB_LD
+let DataSynchronizationBarrier_Writes () = barrier Barrier_DSB_ST
+let DataSynchronizationBarrier_All () = barrier Barrier_DSB
+let InstructionSynchronizationBarrier () = barrier Barrier_ISB
+
+val TMCommitEffect : unit -> M unit
+let TMCommitEffect () = barrier Barrier_TM_COMMIT
+
+let duplicate_bits (Vector bits start direction,len) =
+ let bits' = repeat bits len in
+ Vector bits' start direction
diff --git a/aarch64_small/armV8_extras_embed_sequential.lem b/aarch64_small/armV8_extras_embed_sequential.lem
new file mode 100644
index 00000000..d2bb8330
--- /dev/null
+++ b/aarch64_small/armV8_extras_embed_sequential.lem
@@ -0,0 +1,59 @@
+open import Pervasives
+open import Sail_impl_base
+open import Sail_values
+open import State
+
+val rMem_NORMAL : (vector bitU * integer) -> M (vector bitU)
+val rMem_STREAM : (vector bitU * integer) -> M (vector bitU)
+val rMem_ORDERED : (vector bitU * integer) -> M (vector bitU)
+val rMem_ATOMICL : (vector bitU * integer) -> M (vector bitU)
+val rMem_ATOMIC_ORDERED : (vector bitU * integer) -> M (vector bitU)
+
+let rMem_NORMAL (addr,size) = read_mem false Read_plain addr size
+let rMem_STREAM (addr,size) = read_mem false Read_stream addr size
+let rMem_ORDERED (addr,size) = read_mem false Read_acquire addr size
+let rMem_ATOMIC (addr,size) = read_mem false Read_exclusive addr size
+let rMem_ATOMIC_ORDERED (addr,size) = read_mem false Read_exclusive_acquire addr size
+
+val wMem_Addr_NORMAL : (vector bitU * integer) -> M unit
+val wMem_Addr_ORDERED : (vector bitU * integer) -> M unit
+val wMem_Addr_ATOMIC : (vector bitU * integer) -> M unit
+val wMem_Addr_ATOMIC_ORDERED : (vector bitU * integer) -> M unit
+
+let wMem_Addr_NORMAL (addr,size) = write_mem_ea Write_plain addr size
+let wMem_Addr_ORDERED (addr,size) = write_mem_ea Write_release addr size
+let wMem_Addr_ATOMIC (addr,size) = write_mem_ea Write_exclusive addr size
+let wMem_Addr_ATOMIC_ORDERED (addr,size) = write_mem_ea Write_exclusive_release addr size
+
+
+val wMem_Val_NORMAL : (integer * vector bitU) -> M unit
+val wMem_Val_ATOMIC : (integer * vector bitU) -> M bitU
+
+let wMem_Val_NORMAL (_,v) = write_mem_val v >>= fun _ -> return ()
+(* in ARM the status returned is inversed *)
+let wMem_Val_ATOMIC (_,v) = write_mem_val v >>= fun b -> return (if b then B0 else B1)
+
+let speculate_exclusive_success () = excl_result () >>= fun b -> return (if b then B1 else B0)
+
+val DataMemoryBarrier_Reads : unit -> M unit
+val DataMemoryBarrier_Writes : unit -> M unit
+val DataMemoryBarrier_All : unit -> M unit
+val DataSynchronizationBarrier_Reads : unit -> M unit
+val DataSynchronizationBarrier_Writes : unit -> M unit
+val DataSynchronizationBarrier_All : unit -> M unit
+val InstructionSynchronizationBarrier : unit -> M unit
+
+let DataMemoryBarrier_Reads () = barrier Barrier_DMB_LD
+let DataMemoryBarrier_Writes () = barrier Barrier_DMB_ST
+let DataMemoryBarrier_All () = barrier Barrier_DMB
+let DataSynchronizationBarrier_Reads () = barrier Barrier_DSB_LD
+let DataSynchronizationBarrier_Writes () = barrier Barrier_DSB_ST
+let DataSynchronizationBarrier_All () = barrier Barrier_DSB
+let InstructionSynchronizationBarrier () = barrier Barrier_ISB
+
+val TMCommitEffect : unit -> M unit
+let TMCommitEffect () = barrier Barrier_TM_COMMIT
+
+let duplicate_bits (Vector bits start direction,len) =
+ let bits' = repeat bits len in
+ Vector bits' start direction
diff --git a/aarch64_small/armV8_lib.h.sail b/aarch64_small/armV8_lib.h.sail
new file mode 100644
index 00000000..3b15a1cd
--- /dev/null
+++ b/aarch64_small/armV8_lib.h.sail
@@ -0,0 +1,233 @@
+/*========================================================================*/
+/* */
+/* Copyright (c) 2015-2017 Shaked Flur */
+/* Copyright (c) 2015-2017 Kathyrn Gray */
+/* All rights reserved. */
+/* */
+/* This software was developed by the University of Cambridge Computer */
+/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */
+/* (REMS) project, funded by EPSRC grant EP/K008528/1. */
+/* */
+/* 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. */
+/*========================================================================*/
+
+/*** common lib ***/
+
+enum AccType = {
+ AccType_NORMAL, AccType_VEC, /* Normal loads and stores */
+ AccType_STREAM, AccType_VECSTREAM, /* Streaming loads and stores */
+ AccType_ATOMIC, /* Atomic loads and stores */
+ AccType_ORDERED, /* Load-Acquire and Store-Release */
+ AccType_UNPRIV, /* Load and store unprivileged */
+ AccType_IFETCH, /* Instruction fetch */
+ AccType_PTW, /* Page table walk */
+ /* Other operations*/
+ AccType_DC, /* Data cache maintenance */
+ AccType_IC, /* Instruction cache maintenance */
+ AccType_AT /* Address translation */
+}
+
+enum MBReqDomain =
+ {MBReqDomain_Nonshareable, MBReqDomain_InnerShareable,
+ MBReqDomain_OuterShareable, MBReqDomain_FullSystem}
+
+enum MBReqTypes =
+ {MBReqTypes_Reads, MBReqTypes_Writes, MBReqTypes_All}
+
+
+enum BranchType =
+ {BranchType_CALL, BranchType_ERET, BranchType_DBGEXIT,
+ BranchType_RET, BranchType_JMP, BranchType_EXCEPTION,
+ BranchType_UNKNOWN}
+
+enum MoveWideOp =
+ {MoveWideOp_N, MoveWideOp_Z, MoveWideOp_K}
+
+/* shared/functions/system/Mode_Bits */
+let M32_User = 0b10000
+let M32_FIQ = 0b10001
+let M32_IRQ = 0b10010
+let M32_Svc = 0b10011
+let M32_Monitor = 0b10110
+let M32_Abort = 0b10111
+let M32_Hyp = 0b11010
+let M32_Undef = 0b11011
+let M32_System = 0b11111
+
+/* shared/functions/system/EL0 */
+let EL3 = 0b11
+let EL2 = 0b10
+let EL1 = 0b01
+let EL0 = 0b00
+
+enum DeviceType =
+ {DeviceType_GRE, DeviceType_nGRE, DeviceType_nGnRE, DeviceType_nGnRnE}
+
+enum Fault = {
+ Fault_None,
+ Fault_AccessFlag,
+ Fault_Alignment,
+ Fault_Background,
+ Fault_Domain,
+ Fault_Permission,
+ Fault_Translation,
+ Fault_AddressSize,
+ Fault_SyncExternal,
+ Fault_SyncExternalOnWalk,
+ Fault_SyncParity,
+ Fault_SyncParityOnWalk,
+ Fault_AsyncParity,
+ Fault_AsyncExternal,
+ Fault_Debug,
+ Fault_TLBConflict,
+ Fault_Lockdown,
+ Fault_Exclusive,
+ Fault_ICacheMaint
+}
+
+struct FaultRecord = {
+ faulttype : Fault, /* Fault Status */ /* used to be called type*/
+ acctype : AccType, /* Type of access that faulted */
+ ipaddress : bits(48), /* Intermediate physical address */
+ s2fs1walk : boolean, /* Is on a Stage 1 page table walk */
+ write : boolean, /* TRUE for a write, FALSE for a read */
+ level : uinteger, /* For translation, access flag and permission faults */
+ extflag : bit, /* IMPLEMENTATION DEFINED syndrome for external aborts */
+ secondstage : boolean, /* Is a Stage 2 abort */
+ domain : bits(4), /* Domain number, AArch32 only */
+ debugmoe : bits(4), /* Debug method of entry, from AArch32 only */
+}
+
+struct MemAttrHints = {
+ attrs : bits(2), /* The possible encodings for each attributes field are as below */
+ hints : bits(2), /* The possible encodings for the hints are below */
+ transient : boolean,
+}
+
+enum MemType = {MemType_Normal, MemType_Device}
+
+struct MemoryAttributes = {
+ MA_type : MemType, /* used to be called type */
+
+/* DeviceType device; /* For Device memory types */ */
+/* MemAttrHints inner; /* Inner hints and attributes */ */
+/* MemAttrHints outer; /* Outer hints and attributes */ */
+
+ shareable : boolean,
+/* boolean outershareable; */
+}
+
+struct FullAddress = {
+ /* because we don't use TLB this is actually a virtual address and
+ therefore we have to use 64 bits instead of 48 */
+ physicaladdress : bits(64), /* ARM: bits(48) physicaladdress */
+ NS : bit, /* '0' = Secure, '1' = Non-secure */
+}
+
+struct AddressDescriptor = {
+ fault : FaultRecord, /* fault.type indicates whether the address is valid */
+ memattrs : MemoryAttributes,
+ paddress : FullAddress,
+}
+
+enum PrefetchHint = {Prefetch_READ, Prefetch_WRITE, Prefetch_EXEC}
+
+val ASR_C : forall 'N 'S, 'N >= 0 & 'S >= 1. (bits('N),atom('S)) -> (bits('N), bit) effect pure
+val LSL_C : forall 'N 'S, 'N >= 0 & 'S >= 1. (bits('N),atom('S)) -> (bits('N), bit) effect pure
+val LSR_C : forall 'N 'S, 'N >= 0 & 'S >= 1. (bits('N),atom('S)) -> (bits('N), bit) effect pure
+val ROR_C : forall 'N 'S, 'N >= 0 & ('S >= 1 | 'S <= -1). (bits('N),int('S)) -> (bits('N), bit) effect pure
+val IsZero : forall 'N, 'N >=0. bits('N) -> boolean effect pure
+val Replicate : forall 'N 'M, 'N >=0 & 'M >=0. (implicit('N),bits('M)) -> bits('N) effect pure
+val SignExtend : forall 'N 'M, 'N >= 'M & 'M >= 0. (implicit('N),bits('M)) -> bits('N) effect pure
+val ZeroExtend : forall 'N 'M, 'N >= 'M & 'M >= 0. (implicit('N),bits('M)) -> bits('N) effect pure
+val Zeros : forall 'N, 'N >=0. implicit('N) -> bits('N) effect pure
+val Ones : forall 'N, 'N >=0. implicit('N) -> bits('N) effect pure
+/* val UInt : forall Nat 'N, Nat 'M, 'M = 2**'N. bits('N) -> [|'M + -1|] effect pure */
+val UInt : forall 'N 'M, 'N >=0 & 'M >= 0. bits('N) -> atom('M) effect pure
+/* val SInt : forall Nat 'N, Nat 'M, Nat 'K, 'M = 'N + -1, 'K = 2**'M. bits('N) -> [|'K * -1:'K + -1|] effect pure */
+val SInt : forall 'N 'M, 'N >= 0 & 'M >=0. bits('N) -> atom('M) effect pure
+val HighestSetBit : forall 'N, 'N >= 0. bits('N+1) -> option(range(0,'N + -1)) effect pure
+val CountLeadingZeroBits : forall 'N, 'N >= 0. bits('N) -> range(0,'N) effect pure
+val IsSecure : unit -> boolean effect {rreg}
+val IsSecureBelowEL3 : unit -> boolean effect {rreg}
+val SCR_GEN : unit -> SCRType effect pure
+val UsingAArch32 : unit -> boolean effect pure
+val ELUsingAArch32 : bits(2) -> boolean effect pure
+val Halted : unit -> boolean effect {rreg}
+val HaveEL : bits(2) -> boolean effect pure
+val HaveAnyAArch32 : unit -> boolean effect pure
+val HighestELUsingAArch32 : unit -> boolean effect pure
+val Unreachable : unit -> unit effect pure
+val Hint_Branch : BranchType -> unit effect pure
+
+/*************************************************************************/
+/*** AArch64 lib ***/
+
+enum CountOp = {CountOp_CLZ, CountOp_CLS, CountOp_CNT}
+
+enum ExtendType =
+ { ExtendType_SXTB, ExtendType_SXTH, ExtendType_SXTW, ExtendType_SXTX,
+ ExtendType_UXTB, ExtendType_UXTH, ExtendType_UXTW, ExtendType_UXTX }
+
+enum RevOp = {RevOp_RBIT, RevOp_REV16, RevOp_REV32, RevOp_REV64}
+
+enum ShiftType = /* the oreder is important for decoding */
+ {ShiftType_LSL, ShiftType_LSR, ShiftType_ASR, ShiftType_ROR}
+
+enum LogicalOp = {LogicalOp_AND, LogicalOp_EOR, LogicalOp_ORR}
+
+enum MemOp = {MemOp_LOAD, MemOp_STORE, MemOp_PREFETCH}
+
+enum MemBarrierOp = {MemBarrierOp_DSB, MemBarrierOp_DMB, MemBarrierOp_ISB}
+
+enum SystemHintOp =
+ {SystemHintOp_NOP, SystemHintOp_YIELD,
+ SystemHintOp_WFE, SystemHintOp_WFI,
+ SystemHintOp_SEV, SystemHintOp_SEVL}
+
+enum PSTATEField =
+ {PSTATEField_DAIFSet, PSTATEField_DAIFClr, PSTATEField_SP}
+
+val rPC : unit -> bits(64) effect {rreg}
+val rSP : forall 'N, 'N in {8,16,32,64}. implicit('N) -> bits('N) effect {rreg}
+val wX : forall 'N, 'N in {32,64}. (reg_index,bits('N)) -> unit effect {wreg}
+val rX : forall 'N, 'N in {8,16,32,64}. (implicit('N),reg_index) -> bits('N) effect {rreg}
+val wV : forall 'N, 'N in {8,16,32,64,128}. (SIMD_index,bits('N)) -> unit effect {wreg}
+val rV : forall 'N, 'N in {8,16,32,64,128}. (implicit('N),SIMD_index) -> bits('N) effect {rreg}
+val rVpart : forall 'N, 'N in {8,16,32,64,128}. (implicit('N),SIMD_index,range(0,1)) -> bits('N) effect {rreg}
+val SCTLR : unit -> SCTLR_type effect {rreg}
+val AArch64_UndefinedFault : unit -> unit effect {escape}
+val AArch64_TranslateAddress : (bits(64),AccType,boolean,boolean,uinteger) -> AddressDescriptor effect pure
+val AArch64_WFxTrap : (bits(2),boolean) -> unit effect {escape}
+val AArch64_AlignmentFault : (AccType,boolean,boolean) -> FaultRecord effect pure
+val AArch64_ResetGeneralRegisters : unit -> unit effect {wreg}
+val AArch64_ResetSIMDFPRegisters : unit -> unit effect {wreg}
+val AArch64_ResetSpecialRegisters : unit -> unit effect {wreg}
+val AArch64_IsExclusiveVA : (bits(64),integer,uinteger) -> boolean effect pure
+
+/*************************************************************************/
+/*** AArch32 lib ***/
+
+
+
diff --git a/aarch64_small/armV8_pstate.sail b/aarch64_small/armV8_pstate.sail
new file mode 100644
index 00000000..dcf35488
--- /dev/null
+++ b/aarch64_small/armV8_pstate.sail
@@ -0,0 +1,127 @@
+/*========================================================================*/
+/* */
+/* Copyright (c) 2015-2017 Shaked Flur */
+/* Copyright (c) 2015-2017 Kathyrn Gray */
+/* All rights reserved. */
+/* */
+/* This software was developed by the University of Cambridge Computer */
+/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */
+/* (REMS) project, funded by EPSRC grant EP/K008528/1. */
+/* */
+/* 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. */
+/*========================================================================*/
+
+/* register alias PSTATE_N = NZCV.N /\* Negative condition flag *\/ */
+function set_PSTATE_N(v) = {NZCV.N = v}
+function get_PSTATE_N() = NZCV.N
+overload PSTATE_N = {set_PSTATE_N, get_PSTATE_N}
+
+/* register alias PSTATE_Z = NZCV.Z /\* Zero condition flag *\/ */
+function set_PSTATE_Z(v) = {NZCV.Z = v}
+function get_PSTATE_Z() = NZCV.Z
+overload PSTATE_Z = {set_PSTATE_Z, get_PSTATE_Z}
+
+/* register alias PSTATE_C = NZCV.C /\* Carry condition flag *\/ */
+function set_PSTATE_C(v) = {NZCV.C = v}
+function get_PSTATE_C() = NZCV.C
+overload PSTATE_C = {set_PSTATE_C, get_PSTATE_C}
+
+/* register alias PSTATE_V = NZCV.V /\* oVerflow condition flag *\/ */
+function set_PSTATE_V(v) = {NZCV.V = v}
+function get_PSTATE_V() = NZCV.V
+overload PSTATE_V = {set_PSTATE_V, get_PSTATE_V}
+
+/* register alias PSTATE_D = DAIF.D /\* Debug mask bits(AArch64 only) *\/ */
+function set_PSTATE_D(v) = {NZCV.D = v}
+function get_PSTATE_D() = NZCV.D
+overload PSTATE_D = {set_PSTATE_D, get_PSTATE_D}
+
+/* register alias PSTATE_A = DAIF.A /\* Asynchronous abort mask bit *\/ */
+function set_PSTATE_A(v) = {NZCV.A = v}
+function get_PSTATE_A() = NZCV.A
+overload PSTATE_A = {set_PSTATE_A, get_PSTATE_A}
+
+/* register alias PSTATE_I = DAIF.I /\* IRQ mask bit *\/ */
+function set_PSTATE_I(v) = {NZCV.I = v}
+function get_PSTATE_I() = NZCV.I
+overload PSTATE_I = {set_PSTATE_I, get_PSTATE_I}
+
+/* register alias PSTATE_F = DAIF.F /\* FIQ mask bit *\/ */
+function set_PSTATE_F(v) = {NZCV.F = v}
+function get_PSTATE_F() = NZCV.F
+overload PSTATE_F = {set_PSTATE_F, get_PSTATE_F}
+
+/* register alias PSTATE_SS = /* Software step bit */ */
+/* register alias PSTATE_IL = /* Illegal execution state bit */ */
+
+/* register alias PSTATE_EL = CurrentEL.EL /\* Exception Level *\/ */
+function set_PSTATE_EL(v) = {NZCV.EL = v}
+function get_PSTATE_EL() = NZCV.EL
+overload PSTATE_EL = {set_PSTATE_EL, get_PSTATE_EL}
+
+/* register PSTATE_nRW : bits(1) /\* not Register Width: 0=64, 1=32 *\/ */
+function set_PSTATE_nRW(v) = {NZCV.nRW = v}
+function get_PSTATE_nRW() = NZCV.nRW
+overload PSTATE_nRW = {set_PSTATE_nRW, get_PSTATE_nRW}
+
+/* register alias PSTATE_SP = SPSel.SP /\* Stack pointer select: 0=SP0, 1=SPx [AArch64 only] *\/ /\* TODO: confirm this *\/ */
+function set_PSTATE_SP(v) = {NZCV.SP = v}
+function get_PSTATE_SP() = NZCV.SP
+overload PSTATE_SP = {set_PSTATE_SP, get_PSTATE_SP}
+
+/* register alias PSTATE_Q = /* Cumulative saturation flag [AArch32 only] */ */
+/* register alias PSTATE_GE = /* Greater than or Equal flags [AArch32 only] */ */
+/* register alias PSTATE_IT = /* If-then bits, RES0 in CPSR [AArch32 only] */ */
+/* register alias PSTATE_J = /* J bit, RES0 in CPSR [AArch32 only, RES0 in ARMv8] */ */
+/* register alias PSTATE_T = /* T32 bit, RES0 in CPSR [AArch32 only] */ */
+/* register PSTATE_E : bits(1) /\* Endianness bits(AArch32 only) *\/ */
+function set_PSTATE_E(v) = {NZCV.E = v}
+function get_PSTATE_E() = NZCV.E
+overload PSTATE_E = {set_PSTATE_E, get_PSTATE_E}
+
+/* register PSTATE_M : bits(5) /\* Mode field [AArch32 only] *\/ */
+function set_PSTATE_M(v) = {NZCV.M = v}
+function get_PSTATE_M() = NZCV.M
+overload PSTATE_M = {set_PSTATE_M, get_PSTATE_M}
+
+
+/* this is a convenient way to do "PSTATE.<N,Z,C,V> = nzcv;" */
+val wPSTATE_NZCV : (unit, bits(4)) -> unit effect {wreg}
+function wPSTATE_NZCV((), [n,z,c,v]) =
+{
+ PSTATE_N = n;
+ PSTATE_Z = z;
+ PSTATE_C = c;
+ PSTATE_V = v;
+}
+
+/* this is a convenient way to do "PSTATE.<D,A,I,F> = daif;" */
+val wPSTATE_DAIF : (unit, bits(4)) -> unit effect {wreg}
+function wPSTATE_DAIF((), [d,a,i,f]) =
+{
+ PSTATE_D = d;
+ PSTATE_A = a;
+ PSTATE_I = i;
+ PSTATE_F = f;
+}
diff --git a/aarch64_small/armV8_toFromInterp.lem b/aarch64_small/armV8_toFromInterp.lem
new file mode 100644
index 00000000..0ce3f7f5
--- /dev/null
+++ b/aarch64_small/armV8_toFromInterp.lem
@@ -0,0 +1,702 @@
+(*Generated by Sail from armV8.sail.*)
+open import Pervasives_extra
+open import Sail_impl_base
+open import Sail_values
+open import ArmV8_embed_types
+open import ArmV8_extras_embed
+ import Interp
+ import Interp_ast
+open import Deep_shallow_convert
+let AccTypeToInterpValue = function
+ | AccType_NORMAL -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_NORMAL") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | AccType_VEC -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_VEC") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | AccType_STREAM -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_STREAM") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 2) (toInterpValue ())
+ | AccType_VECSTREAM -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_VECSTREAM") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 3) (toInterpValue ())
+ | AccType_ATOMIC -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_ATOMIC") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 4) (toInterpValue ())
+ | AccType_ORDERED -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_ORDERED") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 5) (toInterpValue ())
+ | AccType_UNPRIV -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_UNPRIV") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 6) (toInterpValue ())
+ | AccType_IFETCH -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_IFETCH") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 7) (toInterpValue ())
+ | AccType_PTW -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_PTW") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 8) (toInterpValue ())
+ | AccType_DC -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_DC") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 9) (toInterpValue ())
+ | AccType_IC -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_IC") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 10) (toInterpValue ())
+ | AccType_AT -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_AT") Interp_ast.Unknown) (Interp_ast.T_id "AccType") (Interp_ast.C_Enum 11) (toInterpValue ())
+ end
+
+let rec AccTypeFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_NORMAL") _) _ _ v -> AccType_NORMAL
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_VEC") _) _ _ v -> AccType_VEC
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_STREAM") _) _ _ v -> AccType_STREAM
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_VECSTREAM") _) _ _ v -> AccType_VECSTREAM
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_ATOMIC") _) _ _ v -> AccType_ATOMIC
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_ORDERED") _) _ _ v -> AccType_ORDERED
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_UNPRIV") _) _ _ v -> AccType_UNPRIV
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_IFETCH") _) _ _ v -> AccType_IFETCH
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_PTW") _) _ _ v -> AccType_PTW
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_DC") _) _ _ v -> AccType_DC
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_IC") _) _ _ v -> AccType_IC
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AccType_AT") _) _ _ v -> AccType_AT
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> AccType_NORMAL
+ | 1 -> AccType_VEC
+ | 2 -> AccType_STREAM
+ | 3 -> AccType_VECSTREAM
+ | 4 -> AccType_ATOMIC
+ | 5 -> AccType_ORDERED
+ | 6 -> AccType_UNPRIV
+ | 7 -> AccType_IFETCH
+ | 8 -> AccType_PTW
+ | 9 -> AccType_DC
+ | 10 -> AccType_IC
+ | 11 -> AccType_AT
+ end
+ | Interp_ast.V_tuple [v] -> AccTypeFromInterpValue v
+ | v -> failwith ("fromInterpValue AccType: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue AccType)
+ let toInterpValue = AccTypeToInterpValue
+ let fromInterpValue = AccTypeFromInterpValue
+end
+let MBReqDomainToInterpValue = function
+ | MBReqDomain_Nonshareable -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqDomain_Nonshareable") Interp_ast.Unknown) (Interp_ast.T_id "MBReqDomain") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | MBReqDomain_InnerShareable -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqDomain_InnerShareable") Interp_ast.Unknown) (Interp_ast.T_id "MBReqDomain") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | MBReqDomain_OuterShareable -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqDomain_OuterShareable") Interp_ast.Unknown) (Interp_ast.T_id "MBReqDomain") (Interp_ast.C_Enum 2) (toInterpValue ())
+ | MBReqDomain_FullSystem -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqDomain_FullSystem") Interp_ast.Unknown) (Interp_ast.T_id "MBReqDomain") (Interp_ast.C_Enum 3) (toInterpValue ())
+ end
+
+let rec MBReqDomainFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqDomain_Nonshareable") _) _ _ v -> MBReqDomain_Nonshareable
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqDomain_InnerShareable") _) _ _ v -> MBReqDomain_InnerShareable
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqDomain_OuterShareable") _) _ _ v -> MBReqDomain_OuterShareable
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqDomain_FullSystem") _) _ _ v -> MBReqDomain_FullSystem
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> MBReqDomain_Nonshareable
+ | 1 -> MBReqDomain_InnerShareable
+ | 2 -> MBReqDomain_OuterShareable
+ | 3 -> MBReqDomain_FullSystem
+ end
+ | Interp_ast.V_tuple [v] -> MBReqDomainFromInterpValue v
+ | v -> failwith ("fromInterpValue MBReqDomain: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue MBReqDomain)
+ let toInterpValue = MBReqDomainToInterpValue
+ let fromInterpValue = MBReqDomainFromInterpValue
+end
+let MBReqTypesToInterpValue = function
+ | MBReqTypes_Reads -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqTypes_Reads") Interp_ast.Unknown) (Interp_ast.T_id "MBReqTypes") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | MBReqTypes_Writes -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqTypes_Writes") Interp_ast.Unknown) (Interp_ast.T_id "MBReqTypes") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | MBReqTypes_All -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqTypes_All") Interp_ast.Unknown) (Interp_ast.T_id "MBReqTypes") (Interp_ast.C_Enum 2) (toInterpValue ())
+ end
+
+let rec MBReqTypesFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqTypes_Reads") _) _ _ v -> MBReqTypes_Reads
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqTypes_Writes") _) _ _ v -> MBReqTypes_Writes
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MBReqTypes_All") _) _ _ v -> MBReqTypes_All
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> MBReqTypes_Reads
+ | 1 -> MBReqTypes_Writes
+ | 2 -> MBReqTypes_All
+ end
+ | Interp_ast.V_tuple [v] -> MBReqTypesFromInterpValue v
+ | v -> failwith ("fromInterpValue MBReqTypes: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue MBReqTypes)
+ let toInterpValue = MBReqTypesToInterpValue
+ let fromInterpValue = MBReqTypesFromInterpValue
+end
+let BranchTypeToInterpValue = function
+ | BranchType_CALL -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_CALL") Interp_ast.Unknown) (Interp_ast.T_id "BranchType") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | BranchType_ERET -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_ERET") Interp_ast.Unknown) (Interp_ast.T_id "BranchType") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | BranchType_DBGEXIT -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_DBGEXIT") Interp_ast.Unknown) (Interp_ast.T_id "BranchType") (Interp_ast.C_Enum 2) (toInterpValue ())
+ | BranchType_RET -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_RET") Interp_ast.Unknown) (Interp_ast.T_id "BranchType") (Interp_ast.C_Enum 3) (toInterpValue ())
+ | BranchType_JMP -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_JMP") Interp_ast.Unknown) (Interp_ast.T_id "BranchType") (Interp_ast.C_Enum 4) (toInterpValue ())
+ | BranchType_EXCEPTION -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_EXCEPTION") Interp_ast.Unknown) (Interp_ast.T_id "BranchType") (Interp_ast.C_Enum 5) (toInterpValue ())
+ | BranchType_UNKNOWN -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_UNKNOWN") Interp_ast.Unknown) (Interp_ast.T_id "BranchType") (Interp_ast.C_Enum 6) (toInterpValue ())
+ end
+
+let rec BranchTypeFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_CALL") _) _ _ v -> BranchType_CALL
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_ERET") _) _ _ v -> BranchType_ERET
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_DBGEXIT") _) _ _ v -> BranchType_DBGEXIT
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_RET") _) _ _ v -> BranchType_RET
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_JMP") _) _ _ v -> BranchType_JMP
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_EXCEPTION") _) _ _ v -> BranchType_EXCEPTION
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchType_UNKNOWN") _) _ _ v -> BranchType_UNKNOWN
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> BranchType_CALL
+ | 1 -> BranchType_ERET
+ | 2 -> BranchType_DBGEXIT
+ | 3 -> BranchType_RET
+ | 4 -> BranchType_JMP
+ | 5 -> BranchType_EXCEPTION
+ | 6 -> BranchType_UNKNOWN
+ end
+ | Interp_ast.V_tuple [v] -> BranchTypeFromInterpValue v
+ | v -> failwith ("fromInterpValue BranchType: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue BranchType)
+ let toInterpValue = BranchTypeToInterpValue
+ let fromInterpValue = BranchTypeFromInterpValue
+end
+let MoveWideOpToInterpValue = function
+ | MoveWideOp_N -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveWideOp_N") Interp_ast.Unknown) (Interp_ast.T_id "MoveWideOp") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | MoveWideOp_Z -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveWideOp_Z") Interp_ast.Unknown) (Interp_ast.T_id "MoveWideOp") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | MoveWideOp_K -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveWideOp_K") Interp_ast.Unknown) (Interp_ast.T_id "MoveWideOp") (Interp_ast.C_Enum 2) (toInterpValue ())
+ end
+
+let rec MoveWideOpFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveWideOp_N") _) _ _ v -> MoveWideOp_N
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveWideOp_Z") _) _ _ v -> MoveWideOp_Z
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveWideOp_K") _) _ _ v -> MoveWideOp_K
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> MoveWideOp_N
+ | 1 -> MoveWideOp_Z
+ | 2 -> MoveWideOp_K
+ end
+ | Interp_ast.V_tuple [v] -> MoveWideOpFromInterpValue v
+ | v -> failwith ("fromInterpValue MoveWideOp: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue MoveWideOp)
+ let toInterpValue = MoveWideOpToInterpValue
+ let fromInterpValue = MoveWideOpFromInterpValue
+end
+let DeviceTypeToInterpValue = function
+ | DeviceType_GRE -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DeviceType_GRE") Interp_ast.Unknown) (Interp_ast.T_id "DeviceType") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | DeviceType_nGRE -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DeviceType_nGRE") Interp_ast.Unknown) (Interp_ast.T_id "DeviceType") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | DeviceType_nGnRE -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DeviceType_nGnRE") Interp_ast.Unknown) (Interp_ast.T_id "DeviceType") (Interp_ast.C_Enum 2) (toInterpValue ())
+ | DeviceType_nGnRnE -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DeviceType_nGnRnE") Interp_ast.Unknown) (Interp_ast.T_id "DeviceType") (Interp_ast.C_Enum 3) (toInterpValue ())
+ end
+
+let rec DeviceTypeFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DeviceType_GRE") _) _ _ v -> DeviceType_GRE
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DeviceType_nGRE") _) _ _ v -> DeviceType_nGRE
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DeviceType_nGnRE") _) _ _ v -> DeviceType_nGnRE
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DeviceType_nGnRnE") _) _ _ v -> DeviceType_nGnRnE
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> DeviceType_GRE
+ | 1 -> DeviceType_nGRE
+ | 2 -> DeviceType_nGnRE
+ | 3 -> DeviceType_nGnRnE
+ end
+ | Interp_ast.V_tuple [v] -> DeviceTypeFromInterpValue v
+ | v -> failwith ("fromInterpValue DeviceType: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue DeviceType)
+ let toInterpValue = DeviceTypeToInterpValue
+ let fromInterpValue = DeviceTypeFromInterpValue
+end
+let FaultToInterpValue = function
+ | Fault_None -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_None") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | Fault_AccessFlag -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_AccessFlag") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | Fault_Alignment -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Alignment") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 2) (toInterpValue ())
+ | Fault_Background -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Background") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 3) (toInterpValue ())
+ | Fault_Domain -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Domain") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 4) (toInterpValue ())
+ | Fault_Permission -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Permission") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 5) (toInterpValue ())
+ | Fault_Translation -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Translation") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 6) (toInterpValue ())
+ | Fault_AddressSize -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_AddressSize") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 7) (toInterpValue ())
+ | Fault_SyncExternal -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_SyncExternal") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 8) (toInterpValue ())
+ | Fault_SyncExternalOnWalk -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_SyncExternalOnWalk") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 9) (toInterpValue ())
+ | Fault_SyncParity -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_SyncParity") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 10) (toInterpValue ())
+ | Fault_SyncParityOnWalk -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_SyncParityOnWalk") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 11) (toInterpValue ())
+ | Fault_AsyncParity -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_AsyncParity") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 12) (toInterpValue ())
+ | Fault_AsyncExternal -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_AsyncExternal") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 13) (toInterpValue ())
+ | Fault_Debug -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Debug") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 14) (toInterpValue ())
+ | Fault_TLBConflict -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_TLBConflict") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 15) (toInterpValue ())
+ | Fault_Lockdown -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Lockdown") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 16) (toInterpValue ())
+ | Fault_Exclusive -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Exclusive") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 17) (toInterpValue ())
+ | Fault_ICacheMaint -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_ICacheMaint") Interp_ast.Unknown) (Interp_ast.T_id "Fault") (Interp_ast.C_Enum 18) (toInterpValue ())
+ end
+
+let rec FaultFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_None") _) _ _ v -> Fault_None
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_AccessFlag") _) _ _ v -> Fault_AccessFlag
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Alignment") _) _ _ v -> Fault_Alignment
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Background") _) _ _ v -> Fault_Background
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Domain") _) _ _ v -> Fault_Domain
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Permission") _) _ _ v -> Fault_Permission
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Translation") _) _ _ v -> Fault_Translation
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_AddressSize") _) _ _ v -> Fault_AddressSize
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_SyncExternal") _) _ _ v -> Fault_SyncExternal
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_SyncExternalOnWalk") _) _ _ v -> Fault_SyncExternalOnWalk
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_SyncParity") _) _ _ v -> Fault_SyncParity
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_SyncParityOnWalk") _) _ _ v -> Fault_SyncParityOnWalk
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_AsyncParity") _) _ _ v -> Fault_AsyncParity
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_AsyncExternal") _) _ _ v -> Fault_AsyncExternal
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Debug") _) _ _ v -> Fault_Debug
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_TLBConflict") _) _ _ v -> Fault_TLBConflict
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Lockdown") _) _ _ v -> Fault_Lockdown
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_Exclusive") _) _ _ v -> Fault_Exclusive
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Fault_ICacheMaint") _) _ _ v -> Fault_ICacheMaint
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> Fault_None
+ | 1 -> Fault_AccessFlag
+ | 2 -> Fault_Alignment
+ | 3 -> Fault_Background
+ | 4 -> Fault_Domain
+ | 5 -> Fault_Permission
+ | 6 -> Fault_Translation
+ | 7 -> Fault_AddressSize
+ | 8 -> Fault_SyncExternal
+ | 9 -> Fault_SyncExternalOnWalk
+ | 10 -> Fault_SyncParity
+ | 11 -> Fault_SyncParityOnWalk
+ | 12 -> Fault_AsyncParity
+ | 13 -> Fault_AsyncExternal
+ | 14 -> Fault_Debug
+ | 15 -> Fault_TLBConflict
+ | 16 -> Fault_Lockdown
+ | 17 -> Fault_Exclusive
+ | 18 -> Fault_ICacheMaint
+ end
+ | Interp_ast.V_tuple [v] -> FaultFromInterpValue v
+ | v -> failwith ("fromInterpValue Fault: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue Fault)
+ let toInterpValue = FaultToInterpValue
+ let fromInterpValue = FaultFromInterpValue
+end
+let MemTypeToInterpValue = function
+ | MemType_Normal -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemType_Normal") Interp_ast.Unknown) (Interp_ast.T_id "MemType") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | MemType_Device -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemType_Device") Interp_ast.Unknown) (Interp_ast.T_id "MemType") (Interp_ast.C_Enum 1) (toInterpValue ())
+ end
+
+let rec MemTypeFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemType_Normal") _) _ _ v -> MemType_Normal
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemType_Device") _) _ _ v -> MemType_Device
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> MemType_Normal
+ | 1 -> MemType_Device
+ end
+ | Interp_ast.V_tuple [v] -> MemTypeFromInterpValue v
+ | v -> failwith ("fromInterpValue MemType: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue MemType)
+ let toInterpValue = MemTypeToInterpValue
+ let fromInterpValue = MemTypeFromInterpValue
+end
+let PrefetchHintToInterpValue = function
+ | Prefetch_READ -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Prefetch_READ") Interp_ast.Unknown) (Interp_ast.T_id "PrefetchHint") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | Prefetch_WRITE -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Prefetch_WRITE") Interp_ast.Unknown) (Interp_ast.T_id "PrefetchHint") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | Prefetch_EXEC -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Prefetch_EXEC") Interp_ast.Unknown) (Interp_ast.T_id "PrefetchHint") (Interp_ast.C_Enum 2) (toInterpValue ())
+ end
+
+let rec PrefetchHintFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Prefetch_READ") _) _ _ v -> Prefetch_READ
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Prefetch_WRITE") _) _ _ v -> Prefetch_WRITE
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Prefetch_EXEC") _) _ _ v -> Prefetch_EXEC
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> Prefetch_READ
+ | 1 -> Prefetch_WRITE
+ | 2 -> Prefetch_EXEC
+ end
+ | Interp_ast.V_tuple [v] -> PrefetchHintFromInterpValue v
+ | v -> failwith ("fromInterpValue PrefetchHint: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue PrefetchHint)
+ let toInterpValue = PrefetchHintToInterpValue
+ let fromInterpValue = PrefetchHintFromInterpValue
+end
+let CountOpToInterpValue = function
+ | CountOp_CLZ -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CountOp_CLZ") Interp_ast.Unknown) (Interp_ast.T_id "CountOp") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | CountOp_CLS -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CountOp_CLS") Interp_ast.Unknown) (Interp_ast.T_id "CountOp") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | CountOp_CNT -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CountOp_CNT") Interp_ast.Unknown) (Interp_ast.T_id "CountOp") (Interp_ast.C_Enum 2) (toInterpValue ())
+ end
+
+let rec CountOpFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CountOp_CLZ") _) _ _ v -> CountOp_CLZ
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CountOp_CLS") _) _ _ v -> CountOp_CLS
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CountOp_CNT") _) _ _ v -> CountOp_CNT
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> CountOp_CLZ
+ | 1 -> CountOp_CLS
+ | 2 -> CountOp_CNT
+ end
+ | Interp_ast.V_tuple [v] -> CountOpFromInterpValue v
+ | v -> failwith ("fromInterpValue CountOp: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue CountOp)
+ let toInterpValue = CountOpToInterpValue
+ let fromInterpValue = CountOpFromInterpValue
+end
+let ExtendTypeToInterpValue = function
+ | ExtendType_SXTB -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_SXTB") Interp_ast.Unknown) (Interp_ast.T_id "ExtendType") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | ExtendType_SXTH -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_SXTH") Interp_ast.Unknown) (Interp_ast.T_id "ExtendType") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | ExtendType_SXTW -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_SXTW") Interp_ast.Unknown) (Interp_ast.T_id "ExtendType") (Interp_ast.C_Enum 2) (toInterpValue ())
+ | ExtendType_SXTX -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_SXTX") Interp_ast.Unknown) (Interp_ast.T_id "ExtendType") (Interp_ast.C_Enum 3) (toInterpValue ())
+ | ExtendType_UXTB -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_UXTB") Interp_ast.Unknown) (Interp_ast.T_id "ExtendType") (Interp_ast.C_Enum 4) (toInterpValue ())
+ | ExtendType_UXTH -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_UXTH") Interp_ast.Unknown) (Interp_ast.T_id "ExtendType") (Interp_ast.C_Enum 5) (toInterpValue ())
+ | ExtendType_UXTW -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_UXTW") Interp_ast.Unknown) (Interp_ast.T_id "ExtendType") (Interp_ast.C_Enum 6) (toInterpValue ())
+ | ExtendType_UXTX -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_UXTX") Interp_ast.Unknown) (Interp_ast.T_id "ExtendType") (Interp_ast.C_Enum 7) (toInterpValue ())
+ end
+
+let rec ExtendTypeFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_SXTB") _) _ _ v -> ExtendType_SXTB
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_SXTH") _) _ _ v -> ExtendType_SXTH
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_SXTW") _) _ _ v -> ExtendType_SXTW
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_SXTX") _) _ _ v -> ExtendType_SXTX
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_UXTB") _) _ _ v -> ExtendType_UXTB
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_UXTH") _) _ _ v -> ExtendType_UXTH
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_UXTW") _) _ _ v -> ExtendType_UXTW
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtendType_UXTX") _) _ _ v -> ExtendType_UXTX
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> ExtendType_SXTB
+ | 1 -> ExtendType_SXTH
+ | 2 -> ExtendType_SXTW
+ | 3 -> ExtendType_SXTX
+ | 4 -> ExtendType_UXTB
+ | 5 -> ExtendType_UXTH
+ | 6 -> ExtendType_UXTW
+ | 7 -> ExtendType_UXTX
+ end
+ | Interp_ast.V_tuple [v] -> ExtendTypeFromInterpValue v
+ | v -> failwith ("fromInterpValue ExtendType: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue ExtendType)
+ let toInterpValue = ExtendTypeToInterpValue
+ let fromInterpValue = ExtendTypeFromInterpValue
+end
+let RevOpToInterpValue = function
+ | RevOp_RBIT -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "RevOp_RBIT") Interp_ast.Unknown) (Interp_ast.T_id "RevOp") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | RevOp_REV16 -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "RevOp_REV16") Interp_ast.Unknown) (Interp_ast.T_id "RevOp") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | RevOp_REV32 -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "RevOp_REV32") Interp_ast.Unknown) (Interp_ast.T_id "RevOp") (Interp_ast.C_Enum 2) (toInterpValue ())
+ | RevOp_REV64 -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "RevOp_REV64") Interp_ast.Unknown) (Interp_ast.T_id "RevOp") (Interp_ast.C_Enum 3) (toInterpValue ())
+ end
+
+let rec RevOpFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "RevOp_RBIT") _) _ _ v -> RevOp_RBIT
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "RevOp_REV16") _) _ _ v -> RevOp_REV16
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "RevOp_REV32") _) _ _ v -> RevOp_REV32
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "RevOp_REV64") _) _ _ v -> RevOp_REV64
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> RevOp_RBIT
+ | 1 -> RevOp_REV16
+ | 2 -> RevOp_REV32
+ | 3 -> RevOp_REV64
+ end
+ | Interp_ast.V_tuple [v] -> RevOpFromInterpValue v
+ | v -> failwith ("fromInterpValue RevOp: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue RevOp)
+ let toInterpValue = RevOpToInterpValue
+ let fromInterpValue = RevOpFromInterpValue
+end
+let ShiftTypeToInterpValue = function
+ | ShiftType_LSL -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ShiftType_LSL") Interp_ast.Unknown) (Interp_ast.T_id "ShiftType") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | ShiftType_LSR -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ShiftType_LSR") Interp_ast.Unknown) (Interp_ast.T_id "ShiftType") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | ShiftType_ASR -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ShiftType_ASR") Interp_ast.Unknown) (Interp_ast.T_id "ShiftType") (Interp_ast.C_Enum 2) (toInterpValue ())
+ | ShiftType_ROR -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ShiftType_ROR") Interp_ast.Unknown) (Interp_ast.T_id "ShiftType") (Interp_ast.C_Enum 3) (toInterpValue ())
+ end
+
+let rec ShiftTypeFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ShiftType_LSL") _) _ _ v -> ShiftType_LSL
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ShiftType_LSR") _) _ _ v -> ShiftType_LSR
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ShiftType_ASR") _) _ _ v -> ShiftType_ASR
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ShiftType_ROR") _) _ _ v -> ShiftType_ROR
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> ShiftType_LSL
+ | 1 -> ShiftType_LSR
+ | 2 -> ShiftType_ASR
+ | 3 -> ShiftType_ROR
+ end
+ | Interp_ast.V_tuple [v] -> ShiftTypeFromInterpValue v
+ | v -> failwith ("fromInterpValue ShiftType: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue ShiftType)
+ let toInterpValue = ShiftTypeToInterpValue
+ let fromInterpValue = ShiftTypeFromInterpValue
+end
+let LogicalOpToInterpValue = function
+ | LogicalOp_AND -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LogicalOp_AND") Interp_ast.Unknown) (Interp_ast.T_id "LogicalOp") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | LogicalOp_EOR -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LogicalOp_EOR") Interp_ast.Unknown) (Interp_ast.T_id "LogicalOp") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | LogicalOp_ORR -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LogicalOp_ORR") Interp_ast.Unknown) (Interp_ast.T_id "LogicalOp") (Interp_ast.C_Enum 2) (toInterpValue ())
+ end
+
+let rec LogicalOpFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LogicalOp_AND") _) _ _ v -> LogicalOp_AND
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LogicalOp_EOR") _) _ _ v -> LogicalOp_EOR
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LogicalOp_ORR") _) _ _ v -> LogicalOp_ORR
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> LogicalOp_AND
+ | 1 -> LogicalOp_EOR
+ | 2 -> LogicalOp_ORR
+ end
+ | Interp_ast.V_tuple [v] -> LogicalOpFromInterpValue v
+ | v -> failwith ("fromInterpValue LogicalOp: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue LogicalOp)
+ let toInterpValue = LogicalOpToInterpValue
+ let fromInterpValue = LogicalOpFromInterpValue
+end
+let MemOpToInterpValue = function
+ | MemOp_LOAD -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemOp_LOAD") Interp_ast.Unknown) (Interp_ast.T_id "MemOp") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | MemOp_STORE -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemOp_STORE") Interp_ast.Unknown) (Interp_ast.T_id "MemOp") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | MemOp_PREFETCH -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemOp_PREFETCH") Interp_ast.Unknown) (Interp_ast.T_id "MemOp") (Interp_ast.C_Enum 2) (toInterpValue ())
+ end
+
+let rec MemOpFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemOp_LOAD") _) _ _ v -> MemOp_LOAD
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemOp_STORE") _) _ _ v -> MemOp_STORE
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemOp_PREFETCH") _) _ _ v -> MemOp_PREFETCH
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> MemOp_LOAD
+ | 1 -> MemOp_STORE
+ | 2 -> MemOp_PREFETCH
+ end
+ | Interp_ast.V_tuple [v] -> MemOpFromInterpValue v
+ | v -> failwith ("fromInterpValue MemOp: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue MemOp)
+ let toInterpValue = MemOpToInterpValue
+ let fromInterpValue = MemOpFromInterpValue
+end
+let MemBarrierOpToInterpValue = function
+ | MemBarrierOp_DSB -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemBarrierOp_DSB") Interp_ast.Unknown) (Interp_ast.T_id "MemBarrierOp") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | MemBarrierOp_DMB -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemBarrierOp_DMB") Interp_ast.Unknown) (Interp_ast.T_id "MemBarrierOp") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | MemBarrierOp_ISB -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemBarrierOp_ISB") Interp_ast.Unknown) (Interp_ast.T_id "MemBarrierOp") (Interp_ast.C_Enum 2) (toInterpValue ())
+ end
+
+let rec MemBarrierOpFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemBarrierOp_DSB") _) _ _ v -> MemBarrierOp_DSB
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemBarrierOp_DMB") _) _ _ v -> MemBarrierOp_DMB
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MemBarrierOp_ISB") _) _ _ v -> MemBarrierOp_ISB
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> MemBarrierOp_DSB
+ | 1 -> MemBarrierOp_DMB
+ | 2 -> MemBarrierOp_ISB
+ end
+ | Interp_ast.V_tuple [v] -> MemBarrierOpFromInterpValue v
+ | v -> failwith ("fromInterpValue MemBarrierOp: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue MemBarrierOp)
+ let toInterpValue = MemBarrierOpToInterpValue
+ let fromInterpValue = MemBarrierOpFromInterpValue
+end
+let SystemHintOpToInterpValue = function
+ | SystemHintOp_NOP -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_NOP") Interp_ast.Unknown) (Interp_ast.T_id "SystemHintOp") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | SystemHintOp_YIELD -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_YIELD") Interp_ast.Unknown) (Interp_ast.T_id "SystemHintOp") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | SystemHintOp_WFE -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_WFE") Interp_ast.Unknown) (Interp_ast.T_id "SystemHintOp") (Interp_ast.C_Enum 2) (toInterpValue ())
+ | SystemHintOp_WFI -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_WFI") Interp_ast.Unknown) (Interp_ast.T_id "SystemHintOp") (Interp_ast.C_Enum 3) (toInterpValue ())
+ | SystemHintOp_SEV -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_SEV") Interp_ast.Unknown) (Interp_ast.T_id "SystemHintOp") (Interp_ast.C_Enum 4) (toInterpValue ())
+ | SystemHintOp_SEVL -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_SEVL") Interp_ast.Unknown) (Interp_ast.T_id "SystemHintOp") (Interp_ast.C_Enum 5) (toInterpValue ())
+ end
+
+let rec SystemHintOpFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_NOP") _) _ _ v -> SystemHintOp_NOP
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_YIELD") _) _ _ v -> SystemHintOp_YIELD
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_WFE") _) _ _ v -> SystemHintOp_WFE
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_WFI") _) _ _ v -> SystemHintOp_WFI
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_SEV") _) _ _ v -> SystemHintOp_SEV
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "SystemHintOp_SEVL") _) _ _ v -> SystemHintOp_SEVL
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> SystemHintOp_NOP
+ | 1 -> SystemHintOp_YIELD
+ | 2 -> SystemHintOp_WFE
+ | 3 -> SystemHintOp_WFI
+ | 4 -> SystemHintOp_SEV
+ | 5 -> SystemHintOp_SEVL
+ end
+ | Interp_ast.V_tuple [v] -> SystemHintOpFromInterpValue v
+ | v -> failwith ("fromInterpValue SystemHintOp: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue SystemHintOp)
+ let toInterpValue = SystemHintOpToInterpValue
+ let fromInterpValue = SystemHintOpFromInterpValue
+end
+let PSTATEFieldToInterpValue = function
+ | PSTATEField_DAIFSet -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "PSTATEField_DAIFSet") Interp_ast.Unknown) (Interp_ast.T_id "PSTATEField") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | PSTATEField_DAIFClr -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "PSTATEField_DAIFClr") Interp_ast.Unknown) (Interp_ast.T_id "PSTATEField") (Interp_ast.C_Enum 1) (toInterpValue ())
+ | PSTATEField_SP -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "PSTATEField_SP") Interp_ast.Unknown) (Interp_ast.T_id "PSTATEField") (Interp_ast.C_Enum 2) (toInterpValue ())
+ end
+
+let rec PSTATEFieldFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "PSTATEField_DAIFSet") _) _ _ v -> PSTATEField_DAIFSet
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "PSTATEField_DAIFClr") _) _ _ v -> PSTATEField_DAIFClr
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "PSTATEField_SP") _) _ _ v -> PSTATEField_SP
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> PSTATEField_DAIFSet
+ | 1 -> PSTATEField_DAIFClr
+ | 2 -> PSTATEField_SP
+ end
+ | Interp_ast.V_tuple [v] -> PSTATEFieldFromInterpValue v
+ | v -> failwith ("fromInterpValue PSTATEField: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue PSTATEField)
+ let toInterpValue = PSTATEFieldToInterpValue
+ let fromInterpValue = PSTATEFieldFromInterpValue
+end
+let signalValueToInterpValue = function
+ | LOw -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LOw") Interp_ast.Unknown) (Interp_ast.T_id "signalValue") (Interp_ast.C_Enum 0) (toInterpValue ())
+ | HIGH -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "HIGH") Interp_ast.Unknown) (Interp_ast.T_id "signalValue") (Interp_ast.C_Enum 1) (toInterpValue ())
+ end
+
+let rec signalValueFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LOw") _) _ _ v -> LOw
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "HIGH") _) _ _ v -> HIGH
+ | Interp_ast.V_lit (Interp_ast.L_aux (Interp_ast.L_num n) _) ->
+ match (natFromInteger n) with
+ | 0 -> LOw
+ | 1 -> HIGH
+ end
+ | Interp_ast.V_tuple [v] -> signalValueFromInterpValue v
+ | v -> failwith ("fromInterpValue signalValue: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue signalValue)
+ let toInterpValue = signalValueToInterpValue
+ let fromInterpValue = signalValueFromInterpValue
+end
+let astToInterpValue = function
+ | Unallocated -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Unallocated") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue ())
+ | ImplementationDefinedTestBeginEnd v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ImplementationDefinedTestBeginEnd") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | ImplementationDefinedStopFetching -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ImplementationDefinedStopFetching") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue ())
+ | ImplementationDefinedThreadStart -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ImplementationDefinedThreadStart") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue ())
+ | TMStart v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "TMStart") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | TMCommit -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "TMCommit") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue ())
+ | TMAbort v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "TMAbort") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | TMTest -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "TMTest") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue ())
+ | CompareAndBranch v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CompareAndBranch") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | BranchConditional v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchConditional") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | GenerateExceptionEL1 v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "GenerateExceptionEL1") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | GenerateExceptionEL2 v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "GenerateExceptionEL2") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | GenerateExceptionEL3 v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "GenerateExceptionEL3") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | DebugBreakpoint v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DebugBreakpoint") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | ExternalDebugBreakpoint -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExternalDebugBreakpoint") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue ())
+ | DebugSwitchToExceptionLevel v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DebugSwitchToExceptionLevel") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | MoveSystemImmediate v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveSystemImmediate") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | Hint v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Hint") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | ClearExclusiveMonitor v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ClearExclusiveMonitor") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | Barrier v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Barrier") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | System v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "System") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | MoveSystemRegister v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveSystemRegister") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | TestBitAndBranch v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "TestBitAndBranch") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | BranchImmediate v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchImmediate") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | BranchRegister v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchRegister") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | ExceptionReturn -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExceptionReturn") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue ())
+ | DebugRestorePState -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DebugRestorePState") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue ())
+ | LoadLiteral v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadLiteral") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | LoadStoreAcqExc v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadStoreAcqExc") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | LoadStorePairNonTemp v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadStorePairNonTemp") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | LoadImmediate v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadImmediate") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | LoadRegister v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadRegister") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | LoadStorePair v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadStorePair") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | AddSubImmediate v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AddSubImmediate") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | BitfieldMove v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BitfieldMove") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | ExtractRegister v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtractRegister") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | LogicalImmediate v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LogicalImmediate") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | MoveWide v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveWide") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | Address v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Address") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | AddSubExtendRegister v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AddSubExtendRegister") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | AddSubShiftedRegister v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AddSubShiftedRegister") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | AddSubCarry v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AddSubCarry") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | ConditionalCompareImmediate v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ConditionalCompareImmediate") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | ConditionalCompareRegister v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ConditionalCompareRegister") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | ConditionalSelect v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ConditionalSelect") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | Reverse v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Reverse") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | CountLeading v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CountLeading") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | Division v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Division") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | Shift v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Shift") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | CRC v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CRC") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | MultiplyAddSub v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MultiplyAddSub") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | MultiplyAddSubLong v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MultiplyAddSubLong") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | MultiplyHigh v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MultiplyHigh") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ | LogicalShiftedRegister v -> Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LogicalShiftedRegister") Interp_ast.Unknown) (Interp_ast.T_id "ast") Interp_ast.C_Union (toInterpValue v)
+ end
+
+let rec astFromInterpValue v = match v with
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Unallocated") _) _ _ v -> Unallocated
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ImplementationDefinedTestBeginEnd") _) _ _ v -> ImplementationDefinedTestBeginEnd (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ImplementationDefinedStopFetching") _) _ _ v -> ImplementationDefinedStopFetching
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ImplementationDefinedThreadStart") _) _ _ v -> ImplementationDefinedThreadStart
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "TMStart") _) _ _ v -> TMStart (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "TMCommit") _) _ _ v -> TMCommit
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "TMAbort") _) _ _ v -> TMAbort (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "TMTest") _) _ _ v -> TMTest
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CompareAndBranch") _) _ _ v -> CompareAndBranch (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchConditional") _) _ _ v -> BranchConditional (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "GenerateExceptionEL1") _) _ _ v -> GenerateExceptionEL1 (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "GenerateExceptionEL2") _) _ _ v -> GenerateExceptionEL2 (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "GenerateExceptionEL3") _) _ _ v -> GenerateExceptionEL3 (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DebugBreakpoint") _) _ _ v -> DebugBreakpoint (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExternalDebugBreakpoint") _) _ _ v -> ExternalDebugBreakpoint
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DebugSwitchToExceptionLevel") _) _ _ v -> DebugSwitchToExceptionLevel (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveSystemImmediate") _) _ _ v -> MoveSystemImmediate (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Hint") _) _ _ v -> Hint (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ClearExclusiveMonitor") _) _ _ v -> ClearExclusiveMonitor (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Barrier") _) _ _ v -> Barrier (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "System") _) _ _ v -> System (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveSystemRegister") _) _ _ v -> MoveSystemRegister (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "TestBitAndBranch") _) _ _ v -> TestBitAndBranch (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchImmediate") _) _ _ v -> BranchImmediate (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BranchRegister") _) _ _ v -> BranchRegister (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExceptionReturn") _) _ _ v -> ExceptionReturn
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "DebugRestorePState") _) _ _ v -> DebugRestorePState
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadLiteral") _) _ _ v -> LoadLiteral (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadStoreAcqExc") _) _ _ v -> LoadStoreAcqExc (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadStorePairNonTemp") _) _ _ v -> LoadStorePairNonTemp (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadImmediate") _) _ _ v -> LoadImmediate (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadRegister") _) _ _ v -> LoadRegister (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LoadStorePair") _) _ _ v -> LoadStorePair (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AddSubImmediate") _) _ _ v -> AddSubImmediate (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "BitfieldMove") _) _ _ v -> BitfieldMove (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ExtractRegister") _) _ _ v -> ExtractRegister (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LogicalImmediate") _) _ _ v -> LogicalImmediate (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MoveWide") _) _ _ v -> MoveWide (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Address") _) _ _ v -> Address (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AddSubExtendRegister") _) _ _ v -> AddSubExtendRegister (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AddSubShiftedRegister") _) _ _ v -> AddSubShiftedRegister (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "AddSubCarry") _) _ _ v -> AddSubCarry (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ConditionalCompareImmediate") _) _ _ v -> ConditionalCompareImmediate (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ConditionalCompareRegister") _) _ _ v -> ConditionalCompareRegister (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "ConditionalSelect") _) _ _ v -> ConditionalSelect (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Reverse") _) _ _ v -> Reverse (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CountLeading") _) _ _ v -> CountLeading (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Division") _) _ _ v -> Division (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "Shift") _) _ _ v -> Shift (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "CRC") _) _ _ v -> CRC (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MultiplyAddSub") _) _ _ v -> MultiplyAddSub (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MultiplyAddSubLong") _) _ _ v -> MultiplyAddSubLong (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "MultiplyHigh") _) _ _ v -> MultiplyHigh (fromInterpValue v)
+ | Interp_ast.V_ctor (Interp_ast.Id_aux (Interp_ast.Id "LogicalShiftedRegister") _) _ _ v -> LogicalShiftedRegister (fromInterpValue v)
+ | Interp_ast.V_tuple [v] -> astFromInterpValue v
+ | v -> failwith ("fromInterpValue ast: unexpected value. " ^ Interp.debug_print_value v)
+ end
+
+instance (ToFromInterpValue ast)
+ let toInterpValue = astToInterpValue
+ let fromInterpValue = astFromInterpValue
+end
diff --git a/aarch64_small/gen/ast.hgen b/aarch64_small/gen/ast.hgen
new file mode 100644
index 00000000..60f130d7
--- /dev/null
+++ b/aarch64_small/gen/ast.hgen
@@ -0,0 +1,44 @@
+ | `AArch64TMStart of inst_reg (* t *)
+ | `AArch64TMCommit
+ | `AArch64TMAbort of boolean*bit5 (* retry,reason *)
+ | `AArch64TMTest
+
+ | `AArch64ImplementationDefinedTestBeginEnd of boolean (* isEnd *)
+ | `AArch64ImplementationDefinedStopFetching
+ | `AArch64ImplementationDefinedThreadStart
+ | `AArch64AddSubCarry of inst_reg*inst_reg*inst_reg*reg_size*boolean*boolean (* d,n,m,datasize,sub_op,setflags *)
+ | `AArch64AddSubExtendRegister of inst_reg*inst_reg*inst_reg*reg_size*boolean*boolean*extendType*range0_7 (* d,n,m,datasize,sub_op,setflags,extend_type,shift *)
+ | `AArch64AddSubShiftedRegister of inst_reg*inst_reg*inst_reg*reg_size*boolean*boolean*shiftType*range0_63 (* d,n,m,datasize,sub_op,setflags,shift_type,shift_amount *)
+ | `AArch64AddSubImmediate of inst_reg*inst_reg*reg_size*boolean*boolean*reg_size_bits (* d,n,datasize,sub_op,setflags,imm *)
+ | `AArch64Address of inst_reg*boolean*bit64 (* d,page,imm *)
+ | `AArch64LogicalImmediate of inst_reg*inst_reg*reg_size*boolean*logicalOp*reg_size_bits (* d,n,datasize,setflags,op,imm *)
+ | `AArch64LogicalShiftedRegister of inst_reg*inst_reg*inst_reg*reg_size*boolean*logicalOp*shiftType*range0_63*boolean (* d,n,m,datasize,setflags,op,shift_type,shift_amount,invert *)
+ | `AArch64Shift of inst_reg*inst_reg*inst_reg*reg_size*shiftType (* d,n,m,datasize,shift_type *)
+ | `AArch64BranchConditional of bit64*bit4 (* offset,condition *)
+ | `AArch64BranchImmediate of branchType*bit64 (* branch_type,offset *)
+ | `AArch64BitfieldMove of inst_reg*inst_reg*reg_size*boolean*boolean*uinteger*uinteger*reg_size_bits*reg_size_bits (* d,n,datasize,inzero,extend,R,S,wmask,tmask *)
+ | `AArch64BranchRegister of inst_reg*branchType (* n,branch_type *)
+ | `AArch64CompareAndBranch of inst_reg*reg_size*boolean*bit64 (* t,datasize,iszero,offset *)
+ | `AArch64ConditionalCompareImmediate of inst_reg*reg_size*boolean*bit4*bit4*reg_size_bits (* n,datasize,sub_op,condition,flags,imm *)
+ | `AArch64ConditionalCompareRegister of inst_reg*inst_reg*reg_size*boolean*bit4*bit4 (* n,m,datasize,sub_op,condition,flags *)
+ | `AArch64ClearExclusiveMonitor of uinteger (* imm *)
+ | `AArch64CountLeading of inst_reg*inst_reg*reg_size*countOp (* d,n,datasize,opcode *)
+ | `AArch64CRC of inst_reg*inst_reg*inst_reg*data_size*boolean (* d,n,m,size,crc32c *)
+ | `AArch64ConditionalSelect of inst_reg*inst_reg*inst_reg*reg_size*bit4*boolean*boolean (* d,n,m,datasize,condition,else_inv,else_inc *)
+ | `AArch64Barrier of memBarrierOp*mBReqDomain*mBReqTypes (* op,domain,types *)
+ | `AArch64ExtractRegister of inst_reg*inst_reg*inst_reg*reg_size*uinteger (* d,n,m,datasize,lsb *)
+ | `AArch64Hint of systemHintOp (* op *)
+ | `AArch64LoadStoreAcqExc of inst_reg*inst_reg*inst_reg*inst_reg*accType*boolean*boolean*memOp*uinteger*reg_size*data_size (* n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize *)
+ | `AArch64LoadStorePair of boolean*boolean*inst_reg*inst_reg*inst_reg*accType*memOp*boolean*data_size*bit64 (* wback,postindex,n,t,t2,acctype,memop,signed,datasize,offset *)
+ | `AArch64LoadImmediate of inst_reg*inst_reg*accType*memOp*boolean*boolean*boolean*bit64*reg_size*data_size (* n,t,acctype,memop,signed,wback,postindex,offset,regsize,datasize *)
+ | `AArch64LoadLiteral of inst_reg*memOp*boolean*uinteger*bit64*data_size (* t,memop,signed,size,offset,datasize *)
+ | `AArch64LoadRegister of inst_reg*inst_reg*inst_reg*accType*memOp*boolean*boolean*boolean*extendType*uinteger*reg_size*data_size (* n,t,m,acctype,memop,signed,wback,postindex,extend_type,shift,regsize,datasize *)
+ | `AArch64MultiplyAddSub of inst_reg*inst_reg*inst_reg*inst_reg*reg_size*data_size*boolean (* d,n,m,a,destsize,datasize,sub_op *)
+ | `AArch64MoveWide of inst_reg*reg_size*bit16*uinteger*moveWideOp (* d,datasize,imm,pos,opcode *)
+ | `AArch64Reverse of inst_reg*inst_reg*reg_size*revOp (* d,n,datasize,op *)
+ | `AArch64Division of inst_reg*inst_reg*inst_reg*reg_size*boolean (* d,n,m,datasize,unsigned *)
+ | `AArch64MultiplyAddSubLong of inst_reg*inst_reg*inst_reg*inst_reg*reg_size*data_size*boolean*boolean (* d,n,m,a,destsize,datasize,sub_op,unsigned *)
+ | `AArch64MultiplyHigh of inst_reg*inst_reg*inst_reg*inst_reg*reg_size*data_size*boolean (* d,n,m,a,destsize,datasize,unsigned *)
+ | `AArch64TestBitAndBranch of inst_reg*reg_size*uinteger*bit*bit64 (* t,datasize,bit_pos,bit_val,offset *)
+ | `AArch64MoveSystemRegister of inst_reg*uinteger*uinteger*uinteger*uinteger*uinteger*boolean (* t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read *)
+ | `AArch64MoveSystemImmediate of bit4*pSTATEField (* operand,field *)
diff --git a/aarch64_small/gen/fold.hgen b/aarch64_small/gen/fold.hgen
new file mode 100644
index 00000000..4062d8e6
--- /dev/null
+++ b/aarch64_small/gen/fold.hgen
@@ -0,0 +1,44 @@
+| `AArch64TMStart t -> fold_reg t (y_reg, y_sreg)
+| `AArch64TMCommit -> (y_reg, y_sreg)
+| `AArch64TMAbort (retry,reason) -> (y_reg, y_sreg)
+| `AArch64TMTest -> (y_reg, y_sreg)
+
+| `AArch64ImplementationDefinedStopFetching -> (y_reg, y_sreg)
+| `AArch64ImplementationDefinedThreadStart -> (y_reg, y_sreg)
+| `AArch64ImplementationDefinedTestBeginEnd (isEnd) -> (y_reg, y_sreg)
+| `AArch64AddSubCarry (d,n,m,datasize,sub_op,setflags) -> fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg)))
+| `AArch64AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift) -> fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg)))
+| `AArch64AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount) -> fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg)))
+| `AArch64AddSubImmediate (d,n,datasize,sub_op,setflags,imm) -> fold_reg n (fold_reg d (y_reg, y_sreg))
+| `AArch64Address (d,page,imm) -> fold_reg d (y_reg, y_sreg)
+| `AArch64LogicalImmediate (d,n,datasize,setflags,op,imm) -> fold_reg n (fold_reg d (y_reg, y_sreg))
+| `AArch64LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert) -> fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg)))
+| `AArch64Shift (d,n,m,datasize,shift_type) -> fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg)))
+| `AArch64BranchConditional (offset,condition) -> (y_reg, y_sreg)
+| `AArch64BranchImmediate (branch_type,offset) -> (y_reg, y_sreg)
+| `AArch64BitfieldMove (d,n,datasize,inzero,extend,_R,_S,wmask,tmask) -> fold_reg n (fold_reg d (y_reg, y_sreg))
+| `AArch64BranchRegister (n,branch_type) -> fold_reg n (y_reg, y_sreg)
+| `AArch64CompareAndBranch (t,datasize,iszero,offset) -> fold_reg t (y_reg, y_sreg)
+| `AArch64ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm) -> fold_reg n (y_reg, y_sreg)
+| `AArch64ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags) -> fold_reg m (fold_reg n (y_reg, y_sreg))
+| `AArch64ClearExclusiveMonitor (imm) -> (y_reg, y_sreg)
+| `AArch64CountLeading (d,n,datasize,opcode) -> fold_reg n (fold_reg d (y_reg, y_sreg))
+| `AArch64CRC (d,n,m,size,crc32c) -> fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg)))
+| `AArch64ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc) -> fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg)))
+| `AArch64Barrier (op,domain,types) -> (y_reg, y_sreg)
+| `AArch64ExtractRegister (d,n,m,datasize,lsb) -> fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg)))
+| `AArch64Hint (op) -> (y_reg, y_sreg)
+| `AArch64LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize) -> fold_reg s (fold_reg t2 (fold_reg t (fold_reg n (y_reg, y_sreg))))
+| `AArch64LoadStorePair (wback,postindex,n,t,t2,acctype,memop,signed,datasize,offset) -> fold_reg t2 (fold_reg t (fold_reg n (y_reg, y_sreg)))
+| `AArch64LoadImmediate (n,t,acctype,memop,signed,wback,postindex,offset,regsize,datasize) -> fold_reg t (fold_reg n (y_reg, y_sreg))
+| `AArch64LoadLiteral (t,memop,signed,size,offset,datasize) -> fold_reg t (y_reg, y_sreg)
+| `AArch64LoadRegister (n,t,m,acctype,memop,signed,wback,postindex,extend_type,shift,regsize,datasize) -> fold_reg m (fold_reg t (fold_reg n (y_reg, y_sreg)))
+| `AArch64MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op) -> fold_reg a (fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg))))
+| `AArch64MoveWide (d,datasize,imm,pos,opcode) -> fold_reg d (y_reg, y_sreg)
+| `AArch64Reverse (d,n,datasize,op) -> fold_reg n (fold_reg d (y_reg, y_sreg))
+| `AArch64Division (d,n,m,datasize,unsigned) -> fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg)))
+| `AArch64MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,unsigned) -> fold_reg a (fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg))))
+| `AArch64MultiplyHigh (d,n,m,a,destsize,datasize,unsigned) -> fold_reg a (fold_reg m (fold_reg n (fold_reg d (y_reg, y_sreg))))
+| `AArch64TestBitAndBranch (t,datasize,bit_pos,bit_val,offset) -> fold_reg t (y_reg, y_sreg)
+| `AArch64MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read) -> fold_reg t (y_reg, y_sreg)
+| `AArch64MoveSystemImmediate (operand,field) -> (y_reg, y_sreg)
diff --git a/aarch64_small/gen/herdtools_ast_to_shallow_ast.hgen b/aarch64_small/gen/herdtools_ast_to_shallow_ast.hgen
new file mode 100644
index 00000000..6fbb3eb2
--- /dev/null
+++ b/aarch64_small/gen/herdtools_ast_to_shallow_ast.hgen
@@ -0,0 +1,335 @@
+| `AArch64TMStart t -> TMStart (translate_reg "t" t)
+
+| `AArch64TMCommit -> TMCommit
+
+| `AArch64TMAbort (retry,reason) ->
+ TMAbort
+ (translate_boolean "retry" retry,
+ translate_bit5 "reason" reason)
+
+| `AArch64TMTest -> TMTest
+
+| `AArch64ImplementationDefinedStopFetching ->
+ ImplementationDefinedStopFetching
+
+| `AArch64ImplementationDefinedThreadStart ->
+ ImplementationDefinedThreadStart
+
+| `AArch64ImplementationDefinedTestBeginEnd(isEnd) ->
+ ImplementationDefinedTestBeginEnd
+ (translate_boolean "isEnd" isEnd)
+
+| `AArch64AddSubCarry(d,n,m,datasize,sub_op,setflags) ->
+ AddSubCarry
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "sub_op" sub_op,
+ translate_boolean "setflags" setflags)
+
+| `AArch64AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift) ->
+ AddSubExtendRegister
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "sub_op" sub_op,
+ translate_boolean "setflags" setflags,
+ translate_extendType "extend_type" extend_type,
+ translate_range0_7 "shift" shift)
+
+| `AArch64AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount) ->
+ AddSubShiftedRegister
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "sub_op" sub_op,
+ translate_boolean "setflags" setflags,
+ translate_shiftType "shift_type" shift_type,
+ translate_range0_63 "shift_amount" shift_amount)
+
+| `AArch64AddSubImmediate (d,n,datasize,sub_op,setflags,imm) ->
+ AddSubImmediate
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "sub_op" sub_op,
+ translate_boolean "setflags" setflags,
+ translate_reg_size_bits "imm" imm)
+
+| `AArch64Address (d,page,imm) ->
+ Address0
+ (translate_reg "d" d,
+ translate_boolean "page" page,
+ translate_bit64 "imm" imm)
+
+| `AArch64LogicalImmediate (d,n,datasize,setflags,op,imm) ->
+ LogicalImmediate
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "setflags" setflags,
+ translate_logicalOp "op" op,
+ translate_reg_size_bits "imm" imm)
+
+| `AArch64LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert) ->
+ LogicalShiftedRegister
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "setflags" setflags,
+ translate_logicalOp "op" op,
+ translate_shiftType "shift_type" shift_type,
+ translate_range0_63 "shift_amount" shift_amount,
+ translate_boolean "invert" invert)
+
+| `AArch64Shift (d,n,m,datasize,shift_type) ->
+ Shift
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg_size "datasize" datasize,
+ translate_shiftType "shift_type" shift_type)
+
+| `AArch64BranchConditional (offset,condition) ->
+ BranchConditional
+ (translate_bit64 "offset" offset,
+ translate_bit4 "condition" condition)
+
+| `AArch64BranchImmediate (branch_type,offset) ->
+ BranchImmediate
+ (translate_branchType "branch_type" branch_type,
+ translate_bit64 "offset" offset)
+
+| `AArch64BitfieldMove (d,n,datasize,inzero,extend,_R,_S,wmask,tmask) ->
+ BitfieldMove
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "inzero" inzero,
+ translate_boolean "extend" extend,
+ translate_uinteger "_R" _R,
+ translate_uinteger "_S" _S,
+ translate_reg_size_bits "wmask" wmask,
+ translate_reg_size_bits "tmask" tmask)
+
+| `AArch64BranchRegister (n,branch_type) ->
+ BranchRegister
+ (translate_reg "n" n,
+ translate_branchType "branch_type" branch_type)
+
+| `AArch64CompareAndBranch (t,datasize,iszero,offset) ->
+ CompareAndBranch
+ (translate_reg "t" t,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "iszero" iszero,
+ translate_bit64 "offset" offset)
+
+| `AArch64ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm) ->
+ ConditionalCompareImmediate
+ (translate_reg "n" n,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "sub_op" sub_op,
+ translate_bit4 "condition" condition,
+ translate_bit4 "flags" flags,
+ translate_reg_size_bits "imm" imm)
+
+| `AArch64ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags) ->
+ ConditionalCompareRegister
+ (translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "sub_op" sub_op,
+ translate_bit4 "condition" condition,
+ translate_bit4 "flags" flags)
+
+| `AArch64ClearExclusiveMonitor (imm) ->
+ ClearExclusiveMonitor
+ (translate_uinteger "imm" imm)
+
+| `AArch64CountLeading (d,n,datasize,opcode) ->
+ CountLeading
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg_size "datasize" datasize,
+ translate_countOp "opcode" opcode)
+
+| `AArch64CRC (d,n,m,size,crc32c) ->
+ CRC
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_data_size "size" size,
+ translate_boolean "crc32c" crc32c)
+
+| `AArch64ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc) ->
+ ConditionalSelect
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg_size "datasize" datasize,
+ translate_bit4 "condition" condition,
+ translate_boolean "else_inv" else_inv,
+ translate_boolean "else_inc" else_inc)
+
+| `AArch64Barrier (op,domain,types) ->
+ Barrier3
+ (translate_memBarrierOp "op" op,
+ translate_mBReqDomain "domain" domain,
+ translate_mBReqTypes "types" types)
+
+| `AArch64ExtractRegister (d,n,m,datasize,lsb) ->
+ ExtractRegister
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg_size "datasize" datasize,
+ translate_uinteger "lsb" lsb)
+
+| `AArch64Hint (op) ->
+ Hint
+ (translate_systemHintOp "op" op)
+
+| `AArch64LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize) ->
+ LoadStoreAcqExc
+ (translate_reg "n" n,
+ translate_reg "t" t,
+ translate_reg "t2" t2,
+ translate_reg "s" s,
+ translate_accType "acctype" acctype,
+ translate_boolean "excl" excl,
+ translate_boolean "pair" pair,
+ translate_memOp "memop" memop,
+ translate_uinteger "elsize" elsize,
+ translate_reg_size "regsize" regsize,
+ translate_data_size "datasize" datasize)
+
+| `AArch64LoadStorePair (wback,postindex,n,t,t2,acctype,memop,signed,datasize,offset) ->
+ LoadStorePair
+ (translate_boolean "wback" wback,
+ translate_boolean "postindex" postindex,
+ translate_reg "n" n,
+ translate_reg "t" t,
+ translate_reg "t2" t2,
+ translate_accType "acctype" acctype,
+ translate_memOp "memop" memop,
+ translate_boolean "signed" signed,
+ translate_data_size "datasize" datasize,
+ translate_bit64 "offset" offset)
+
+| `AArch64LoadImmediate (n,t,acctype,memop,signed,wback,postindex,offset,regsize,datasize) ->
+ LoadImmediate
+ (translate_reg "n" n,
+ translate_reg "t" t,
+ translate_accType "acctype" acctype,
+ translate_memOp "memop" memop,
+ translate_boolean "signed" signed,
+ translate_boolean "wback" wback,
+ translate_boolean "postindex" postindex,
+ translate_bit64 "offset" offset,
+ translate_reg_size "regsize" regsize,
+ translate_data_size "datasize" datasize)
+
+| `AArch64LoadLiteral (t,memop,signed,size,offset,datasize) ->
+ LoadLiteral
+ (translate_reg "t" t,
+ translate_memOp "memop" memop,
+ translate_boolean "signed" signed,
+ translate_uinteger "size" size,
+ translate_bit64 "offset" offset,
+ translate_data_size "datasize" datasize)
+
+| `AArch64LoadRegister (n,t,m,acctype,memop,signed,wback,postindex,extend_type,shift,regsize,datasize) ->
+ LoadRegister
+ (translate_reg "n" n,
+ translate_reg "t" t,
+ translate_reg "m" m,
+ translate_accType "acctype" acctype,
+ translate_memOp "memop" memop,
+ translate_boolean "signed" signed,
+ translate_boolean "wback" wback,
+ translate_boolean "postindex" postindex,
+ translate_extendType "extend_type" extend_type,
+ translate_uinteger "shift" shift,
+ translate_reg_size "regsize" regsize,
+ translate_data_size "datasize" datasize)
+
+| `AArch64MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op) ->
+ MultiplyAddSub
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg "a" a,
+ translate_reg_size "destsize" destsize,
+ translate_data_size "datasize" datasize,
+ translate_boolean "sub_op" sub_op)
+
+| `AArch64MoveWide (d,datasize,imm,pos,opcode) ->
+ MoveWide
+ (translate_reg "d" d,
+ translate_reg_size "datasize" datasize,
+ translate_bit16 "imm" imm,
+ translate_uinteger "pos" pos,
+ translate_moveWideOp "opcode" opcode)
+
+| `AArch64Reverse (d,n,datasize,op) ->
+ Reverse
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg_size "datasize" datasize,
+ translate_revOp "op" op)
+
+| `AArch64Division (d,n,m,datasize,unsigned) ->
+ Division
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg_size "datasize" datasize,
+ translate_boolean "unsigned" unsigned)
+
+| `AArch64MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,unsigned) ->
+ MultiplyAddSubLong
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg "a" a,
+ translate_reg_size "destsize" destsize,
+ translate_data_size "datasize" datasize,
+ translate_boolean "sub_op" sub_op,
+ translate_boolean "unsigned" unsigned)
+
+| `AArch64MultiplyHigh (d,n,m,a,destsize,datasize,unsigned) ->
+ MultiplyHigh
+ (translate_reg "d" d,
+ translate_reg "n" n,
+ translate_reg "m" m,
+ translate_reg "a" a,
+ translate_reg_size "destsize" destsize,
+ translate_data_size "datasize" datasize,
+ translate_boolean "unsigned" unsigned)
+
+| `AArch64TestBitAndBranch (t,datasize,bit_pos,bit_val,offset) ->
+ TestBitAndBranch
+ (translate_reg "t" t,
+ translate_reg_size "datasize" datasize,
+ translate_uinteger "bit_pos" bit_pos,
+ translate_bit "bit_val" bit_val,
+ translate_bit64 "offset" offset)
+
+| `AArch64MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read) ->
+ MoveSystemRegister
+ (translate_reg "t" t,
+ translate_uinteger "sys_op0" sys_op0,
+ translate_uinteger "sys_op1" sys_op1,
+ translate_uinteger "sys_op2" sys_op2,
+ translate_uinteger "sys_crn" sys_crn,
+ translate_uinteger "sys_crm" sys_crm,
+ translate_boolean "read" read)
+
+| `AArch64MoveSystemImmediate (operand,field) ->
+ MoveSystemImmediate
+ (translate_bit4 "operand" operand,
+ translate_pSTATEField "field" field)
diff --git a/aarch64_small/gen/herdtools_types_to_shallow_types.hgen b/aarch64_small/gen/herdtools_types_to_shallow_types.hgen
new file mode 100644
index 00000000..e14a37e3
--- /dev/null
+++ b/aarch64_small/gen/herdtools_types_to_shallow_types.hgen
@@ -0,0 +1,153 @@
+open Sail_values
+
+let is_inc = false
+
+let translate_big_int bits (name : string) value =
+ (name, Range0 (Some bits), IInt.bit_list_of_integer bits value)
+
+let translate_big_bit bits (name:string) value =
+ Sail_values.to_vec0 is_inc (Nat_big_num.of_int bits,value)
+
+let translate_int (size : int) (name:string) value = (Nat_big_num.of_int value)
+
+let translate_bits bits (name:string) value =
+ Sail_values.to_vec0 is_inc (Nat_big_num.of_int bits,Nat_big_num.of_int value)
+
+let translate_bool _ = function
+ | true -> B1
+ | false -> B0
+
+let translate_reg_size name value =
+ match value with
+ | Set32 -> (Nat_big_num.of_int 32)
+ | Set64 -> (Nat_big_num.of_int 64)
+
+let translate_reg name value =
+ (Nat_big_num.of_int (inst_reg_to_int value))
+
+
+let translate_reg_size_bits name value =
+ match value with
+ | R32Bits value -> translate_bits 32 name value
+ | R64Bits value -> translate_big_bit 64 name value
+
+let translate_data_size name value =
+ match value with
+ | DataSize8 -> (Nat_big_num.of_int 8)
+ | DataSize16 -> (Nat_big_num.of_int 16)
+ | DataSize32 -> (Nat_big_num.of_int 32)
+ | DataSize64 -> (Nat_big_num.of_int 64)
+
+let translate_reg_index = translate_int 5
+
+let translate_boolean = translate_bool
+
+let translate_range0_7 = translate_int 3
+
+let translate_range0_63 = translate_int 6
+
+let translate_bit64 = translate_big_bit 64
+
+let translate_bit4 = translate_bits 4
+let translate_bit5 = translate_bits 5
+let translate_bit16 = translate_bits 16
+
+let translate_bit = translate_bool
+
+let translate_range8_64 = translate_int 7
+
+let translate_uinteger = translate_int 63
+
+let translate_extendType _ = function
+ | ExtendType_UXTB -> ArmV8_embed_types.ExtendType_UXTB
+ | ExtendType_UXTH -> ArmV8_embed_types.ExtendType_UXTH
+ | ExtendType_UXTW -> ArmV8_embed_types.ExtendType_UXTW
+ | ExtendType_UXTX -> ArmV8_embed_types.ExtendType_UXTX
+ | ExtendType_SXTB -> ArmV8_embed_types.ExtendType_SXTB
+ | ExtendType_SXTH -> ArmV8_embed_types.ExtendType_SXTH
+ | ExtendType_SXTW -> ArmV8_embed_types.ExtendType_SXTW
+ | ExtendType_SXTX -> ArmV8_embed_types.ExtendType_SXTX
+
+let translate_shiftType _ = function
+ | ShiftType_LSL -> ArmV8_embed_types.ShiftType_LSL
+ | ShiftType_LSR -> ArmV8_embed_types.ShiftType_LSR
+ | ShiftType_ASR -> ArmV8_embed_types.ShiftType_ASR
+ | ShiftType_ROR -> ArmV8_embed_types.ShiftType_ROR
+
+let translate_logicalOp _ = function
+ | LogicalOp_AND -> ArmV8_embed_types.LogicalOp_AND
+ | LogicalOp_EOR -> ArmV8_embed_types.LogicalOp_EOR
+ | LogicalOp_ORR -> ArmV8_embed_types.LogicalOp_ORR
+
+let translate_branchType _ = function
+ | BranchType_CALL -> ArmV8_embed_types.BranchType_CALL
+ | BranchType_ERET -> ArmV8_embed_types.BranchType_ERET
+ | BranchType_DBGEXIT -> ArmV8_embed_types.BranchType_DBGEXIT
+ | BranchType_RET -> ArmV8_embed_types.BranchType_RET
+ | BranchType_JMP -> ArmV8_embed_types.BranchType_JMP
+ | BranchType_EXCEPTION -> ArmV8_embed_types.BranchType_EXCEPTION
+ | BranchType_UNKNOWN -> ArmV8_embed_types.BranchType_UNKNOWN
+
+let translate_countOp _ = function
+ | CountOp_CLZ -> ArmV8_embed_types.CountOp_CLZ
+ | CountOp_CLS -> ArmV8_embed_types.CountOp_CLS
+ | CountOp_CNT -> ArmV8_embed_types.CountOp_CNT
+
+let translate_memBarrierOp _ = function
+ | MemBarrierOp_DSB -> ArmV8_embed_types.MemBarrierOp_DSB
+ | MemBarrierOp_DMB -> ArmV8_embed_types.MemBarrierOp_DMB
+ | MemBarrierOp_ISB -> ArmV8_embed_types.MemBarrierOp_ISB
+
+let translate_mBReqDomain _ = function
+ | MBReqDomain_Nonshareable -> ArmV8_embed_types.MBReqDomain_Nonshareable
+ | MBReqDomain_InnerShareable -> ArmV8_embed_types.MBReqDomain_InnerShareable
+ | MBReqDomain_OuterShareable -> ArmV8_embed_types.MBReqDomain_OuterShareable
+ | MBReqDomain_FullSystem -> ArmV8_embed_types.MBReqDomain_FullSystem
+
+let translate_mBReqTypes _ = function
+ | MBReqTypes_Reads -> ArmV8_embed_types.MBReqTypes_Reads
+ | MBReqTypes_Writes -> ArmV8_embed_types.MBReqTypes_Writes
+ | MBReqTypes_All -> ArmV8_embed_types.MBReqTypes_All
+
+let translate_systemHintOp _ = function
+ | SystemHintOp_NOP -> ArmV8_embed_types.SystemHintOp_NOP
+ | SystemHintOp_YIELD -> ArmV8_embed_types.SystemHintOp_YIELD
+ | SystemHintOp_WFE -> ArmV8_embed_types.SystemHintOp_WFE
+ | SystemHintOp_WFI -> ArmV8_embed_types.SystemHintOp_WFI
+ | SystemHintOp_SEV -> ArmV8_embed_types.SystemHintOp_SEV
+ | SystemHintOp_SEVL -> ArmV8_embed_types.SystemHintOp_SEVL
+
+let translate_accType _ = function
+ | AccType_NORMAL -> ArmV8_embed_types.AccType_NORMAL
+ | AccType_VEC -> ArmV8_embed_types.AccType_VEC
+ | AccType_STREAM -> ArmV8_embed_types.AccType_STREAM
+ | AccType_VECSTREAM -> ArmV8_embed_types.AccType_VECSTREAM
+ | AccType_ATOMIC -> ArmV8_embed_types.AccType_ATOMIC
+ | AccType_ORDERED -> ArmV8_embed_types.AccType_ORDERED
+ | AccType_UNPRIV -> ArmV8_embed_types.AccType_UNPRIV
+ | AccType_IFETCH -> ArmV8_embed_types.AccType_IFETCH
+ | AccType_PTW -> ArmV8_embed_types.AccType_PTW
+ | AccType_DC -> ArmV8_embed_types.AccType_DC
+ | AccType_IC -> ArmV8_embed_types.AccType_IC
+ | AccType_AT -> ArmV8_embed_types.AccType_AT
+
+let translate_memOp _ = function
+ | MemOp_LOAD -> ArmV8_embed_types.MemOp_LOAD
+ | MemOp_STORE -> ArmV8_embed_types.MemOp_STORE
+ | MemOp_PREFETCH -> ArmV8_embed_types.MemOp_PREFETCH
+
+let translate_moveWideOp _ = function
+ | MoveWideOp_N -> ArmV8_embed_types.MoveWideOp_N
+ | MoveWideOp_Z -> ArmV8_embed_types.MoveWideOp_Z
+ | MoveWideOp_K -> ArmV8_embed_types.MoveWideOp_K
+
+let translate_revOp _ = function
+ | RevOp_RBIT -> ArmV8_embed_types.RevOp_RBIT
+ | RevOp_REV16 -> ArmV8_embed_types.RevOp_REV16
+ | RevOp_REV32 -> ArmV8_embed_types.RevOp_REV32
+ | RevOp_REV64 -> ArmV8_embed_types.RevOp_REV64
+
+let translate_pSTATEField _ = function
+ | PSTATEField_DAIFSet -> ArmV8_embed_types.PSTATEField_DAIFSet
+ | PSTATEField_DAIFClr -> ArmV8_embed_types.PSTATEField_DAIFClr
+ | PSTATEField_SP -> ArmV8_embed_types.PSTATEField_SP
diff --git a/aarch64_small/gen/lexer.hgen b/aarch64_small/gen/lexer.hgen
new file mode 100644
index 00000000..6ff24317
--- /dev/null
+++ b/aarch64_small/gen/lexer.hgen
@@ -0,0 +1,309 @@
+(* instructions: *)
+
+ "TSTART" , TSTART {txt="TSTART"} ;
+ "TCOMMIT", TCOMMIT {txt="TCOMMIT"} ;
+ "TABORT" , TABORT {txt="TABORT"} ;
+ "TTEST" , TTEST {txt="TTEST"} ;
+
+ "ADC" , ADCSBC {txt="ADC"; sub_op = false; setflags = false} ;
+ "SBC" , ADCSBC {txt="SBC"; sub_op = true; setflags = false} ;
+ "ADCS" , ADCSBC {txt="ADCS"; sub_op = false; setflags = true} ;
+ "SBCS" , ADCSBC {txt="SBCS"; sub_op = true; setflags = true} ;
+
+ "ADD" , ADDSUB {txt="ADD"; sub_op=false; setflags=false} ;
+ "SUB" , ADDSUB {txt="SUB"; sub_op=true; setflags=false} ;
+ "ADDS" , ADDSUB {txt="ADDS"; sub_op=false; setflags=true} ;
+ "SUBS" , ADDSUB {txt="SUBS"; sub_op=true; setflags=true} ;
+
+ "ADR" , ADR {txt="ADR"; page=false} ;
+ "ADRP" , ADR {txt="ADRP"; page=true} ;
+
+ "AND" , LOGOP {txt="AND"; op = LogicalOp_AND; setflags = false; invert = false} ;
+ "ANDS" , LOGOP {txt="ANDS"; op = LogicalOp_AND; setflags = true; invert = false} ;
+ "EOR" , LOGOP {txt="EOR"; op = LogicalOp_EOR; setflags = false; invert = false} ;
+ "ORR" , LOGOP {txt="ORR"; op = LogicalOp_ORR; setflags = false; invert = false} ;
+ "BIC" , LOGOP {txt="BIC"; op = LogicalOp_AND; setflags = false; invert = true} ;
+ "BICS" , LOGOP {txt="BICS"; op = LogicalOp_AND; setflags = true; invert = true} ;
+ "EON" , LOGOP {txt="EON"; op = LogicalOp_EOR; setflags = false; invert = true} ;
+ "ORN" , LOGOP {txt="ORN"; op = LogicalOp_ORR; setflags = false; invert = true} ;
+
+ "ASRV" , SHIFTOP {txt="ASRV"; shift_type=ShiftType_ASR} ;
+ "LSLV" , SHIFTOP {txt="LSLV"; shift_type=ShiftType_LSL} ;
+ "LSRV" , SHIFTOP {txt="LSRV"; shift_type=ShiftType_LSR} ;
+ "RORV" , SHIFTOP {txt="RORV"; shift_type=ShiftType_ROR} ;
+
+ "B.EQ" , BCOND {txt="B.EQ"; condition=0b0000} ;
+ "B.NE" , BCOND {txt="B.NE"; condition=0b0001} ;
+ "B.CS" , BCOND {txt="B.CS"; condition=0b0010} ;
+ "B.HS" , BCOND {txt="B.CS"; condition=0b0010} ;
+ "B.CC" , BCOND {txt="B.CC"; condition=0b0011} ;
+ "B.LO" , BCOND {txt="B.CC"; condition=0b0011} ;
+ "B.MI" , BCOND {txt="B.MI"; condition=0b0100} ;
+ "B.PL" , BCOND {txt="B.PL"; condition=0b0101} ;
+ "B.VS" , BCOND {txt="B.VS"; condition=0b0110} ;
+ "B.VC" , BCOND {txt="B.VC"; condition=0b0111} ;
+ "B.HI" , BCOND {txt="B.HI"; condition=0b1000} ;
+ "B.LS" , BCOND {txt="B.LS"; condition=0b1001} ;
+ "B.GE" , BCOND {txt="B.GE"; condition=0b1010} ;
+ "B.LT" , BCOND {txt="B.LT"; condition=0b1011} ;
+ "B.GT" , BCOND {txt="B.GT"; condition=0b1100} ;
+ "B.LE" , BCOND {txt="B.LE"; condition=0b1101} ;
+ "B.AL" , BCOND {txt="B.AL"; condition=0b1110} ;
+ "B.NV" , BCOND {txt="B.NV"; condition=0b1111} ; (* ARM: exists only to provide a valid disassembly
+ of the 0b1111 encoding, otherwise its
+ behavior is identical to AL *)
+
+ "B" , B {txt="B"; branch_type=BranchType_JMP} ;
+ "BL" , B {txt="BL"; branch_type=BranchType_CALL} ;
+
+ "BR" , BR {txt="BR"; branch_type=BranchType_JMP} ;
+ "BLR" , BR {txt="BLR"; branch_type=BranchType_CALL} ;
+
+ "CBZ" , CBZ {txt="CBZ"; iszero=true} ;
+ "CBNZ" , CBZ {txt="CBNZ"; iszero=false} ;
+
+ "BFM" , BFM {txt="BFM"; inzero=false; extend=false} ;
+ "SBFM" , BFM {txt="SBFM"; inzero=true; extend=true} ;
+ "UBFM" , BFM {txt="UBFM"; inzero=true; extend=false} ;
+
+ "CCMN" , CCM {txt="CCMN"; sub_op=false} ;
+ "CCMP" , CCM {txt="CCMP"; sub_op=true} ;
+
+ "CMN" , CM {txt="CMN"; sub_op=false} ;
+ "CMP" , CM {txt="CMP"; sub_op=true} ;
+
+ "CLS" , CL {txt="CLS"; opcode=CountOp_CLS} ;
+ "CLZ" , CL {txt="CLZ"; opcode=CountOp_CLZ} ;
+
+ "CRC32B" , CRC {txt="CRC32B"; size = DataSize8; crc32c = false} ;
+ "CRC32H" , CRC {txt="CRC32H"; size = DataSize16; crc32c = false} ;
+ "CRC32W" , CRC {txt="CRC32W"; size = DataSize32; crc32c = false} ;
+ "CRC32CB" , CRC {txt="CRC32CB"; size = DataSize8; crc32c = true} ;
+ "CRC32CH" , CRC {txt="CRC32CH"; size = DataSize16; crc32c = true} ;
+ "CRC32CW" , CRC {txt="CRC32CW"; size = DataSize32; crc32c = true} ;
+
+ "CRC32X" , CRC32X {txt="CRC32X"; crc32c=false} ;
+ "CRC32CX" , CRC32X {txt="CRC32CX"; crc32c=true} ;
+
+ "CSEL" , CSEL {txt="CSEL"; else_inv = false; else_inc = false} ;
+ "CSINC" , CSEL {txt="CSINC"; else_inv = false; else_inc = true} ;
+ "CSINV" , CSEL {txt="CSINV"; else_inv = true; else_inc = false} ;
+ "CSNEG" , CSEL {txt="CSNEG"; else_inv = true; else_inc = true} ;
+
+ "CSET" , CSET {txt="CSET"; else_inv = false; else_inc = true} ;
+ "CSETM" , CSETM {txt="CSETM"; else_inv = true; else_inc = false} ;
+
+ "CINC" , CON {txt="CINC"; else_inv = false; else_inc = true} ;
+ "CINV" , CON {txt="CINV"; else_inv = true; else_inc = false} ;
+ "CNEG" , CON {txt="CNEG"; else_inv = true; else_inc = true} ;
+
+ "DMB" , MEMBARR {txt="DMB"; op=MemBarrierOp_DMB} ;
+ "DSB" , MEMBARR {txt="DSB"; op=MemBarrierOp_DSB} ;
+
+ "LDAR" , LDAXR {txt="LDAR"; acctype=AccType_ORDERED; excl=false; memop=MemOp_LOAD; var32={elsize=32; datasize=DataSize32}; var64=true} ;
+ "LDARB" , LDAXR {txt="LDARB"; acctype=AccType_ORDERED; excl=false; memop=MemOp_LOAD; var32={elsize=8; datasize=DataSize8}; var64=false} ;
+ "LDARH" , LDAXR {txt="LDARH"; acctype=AccType_ORDERED; excl=false; memop=MemOp_LOAD; var32={elsize=16; datasize=DataSize16}; var64=false} ;
+ "LDAXR" , LDAXR {txt="LDAXR"; acctype=AccType_ORDERED; excl=true; memop=MemOp_LOAD; var32={elsize=32; datasize=DataSize32}; var64=true} ;
+ "LDAXRB" , LDAXR {txt="LDAXRB"; acctype=AccType_ORDERED; excl=true; memop=MemOp_LOAD; var32={elsize=8; datasize=DataSize8}; var64=false} ;
+ "LDAXRH" , LDAXR {txt="LDAXRH"; acctype=AccType_ORDERED; excl=true; memop=MemOp_LOAD; var32={elsize=16; datasize=DataSize16}; var64=false} ;
+ "LDXR" , LDAXR {txt="LDXR"; acctype=AccType_ATOMIC; excl=true; memop=MemOp_LOAD; var32={elsize=32; datasize=DataSize32}; var64=true} ;
+ "LDXRB" , LDAXR {txt="LDXRB"; acctype=AccType_ATOMIC; excl=true; memop=MemOp_LOAD; var32={elsize=8; datasize=DataSize8}; var64=false} ;
+ "LDXRH" , LDAXR {txt="LDXRH"; acctype=AccType_ATOMIC; excl=true; memop=MemOp_LOAD; var32={elsize=16; datasize=DataSize16}; var64=false} ;
+ "STLR" , LDAXR {txt="STLR"; acctype=AccType_ORDERED; excl=false; memop=MemOp_STORE; var32={elsize=32; datasize=DataSize32}; var64=true} ;
+ "STLRB" , LDAXR {txt="STLRB"; acctype=AccType_ORDERED; excl=false; memop=MemOp_STORE; var32={elsize=8; datasize=DataSize8}; var64=false} ;
+ "STLRH" , LDAXR {txt="STLRH"; acctype=AccType_ORDERED; excl=false; memop=MemOp_STORE; var32={elsize=16; datasize=DataSize16}; var64=false} ;
+
+ "STLXR" , STLXR {txt="STLXR"; acctype=AccType_ORDERED; var32={elsize=32; datasize=DataSize32}; var64=true} ;
+ "STLXRB" , STLXR {txt="STLXRB"; acctype=AccType_ORDERED; var32={elsize=8; datasize=DataSize8}; var64=false} ;
+ "STLXRH" , STLXR {txt="STLXRH"; acctype=AccType_ORDERED; var32={elsize=16; datasize=DataSize16}; var64=false} ;
+ "STXR" , STLXR {txt="STXR"; acctype=AccType_ATOMIC; var32={elsize=32; datasize=DataSize32}; var64=true} ;
+ "STXRB" , STLXR {txt="STXRB"; acctype=AccType_ATOMIC; var32={elsize=8; datasize=DataSize8}; var64=false} ;
+ "STXRH" , STLXR {txt="STXRH"; acctype=AccType_ATOMIC; var32={elsize=16; datasize=DataSize16}; var64=false} ;
+
+
+ "LDAXP" , LDXP {txt="LDAXP"; acctype=AccType_ORDERED} ;
+ "LDXP" , LDXP {txt="LDXP"; acctype=AccType_ATOMIC} ;
+
+ "STLXP" , STXP {txt="STLXP"; acctype=AccType_ORDERED} ;
+ "STXP" , STXP {txt="STXP"; acctype=AccType_ATOMIC} ;
+
+ "LDR" , LDSTR {txt="LDR"; memop=MemOp_LOAD; signed=false; lit32=true; var32=Some {datasize=DataSize32}; var64=Some {datasize=DataSize64}; lit64=Some {datasize=DataSize64; size=8}} ;
+ "LDRB" , LDSTR {txt="LDRB"; memop=MemOp_LOAD; signed=false; lit32=false; var32=Some {datasize=DataSize8}; var64=None; lit64=None} ;
+ "LDRH" , LDSTR {txt="LDRH"; memop=MemOp_LOAD; signed=false; lit32=false; var32=Some {datasize=DataSize16}; var64=None; lit64=None} ;
+ "LDRSB" , LDSTR {txt="LDRSB"; memop=MemOp_LOAD; signed=true; lit32=false; var32=Some {datasize=DataSize8}; var64=Some {datasize=DataSize8}; lit64=None} ;
+ "LDRSH" , LDSTR {txt="LDRSH"; memop=MemOp_LOAD; signed=true; lit32=false; var32=Some {datasize=DataSize16}; var64=Some {datasize=DataSize16}; lit64=None} ;
+ "LDRSW" , LDSTR {txt="LDRSW"; memop=MemOp_LOAD; signed=true; lit32=false; var32=None; var64=Some {datasize=DataSize32}; lit64=Some {datasize=DataSize32; size=4}} ;
+ "STR" , LDSTR {txt="STR"; memop=MemOp_STORE; signed=false; lit32=false; var32=Some {datasize=DataSize32}; var64=Some {datasize=DataSize64}; lit64=None} ;
+ "STRB" , LDSTR {txt="STRB"; memop=MemOp_STORE; signed=false; lit32=false; var32=Some {datasize=DataSize8}; var64=None; lit64=None} ;
+ "STRH" , LDSTR {txt="STRH"; memop=MemOp_STORE; signed=false; lit32=false; var32=Some {datasize=DataSize16}; var64=None; lit64=None} ;
+
+ "LDTR" , LDSTTUR {txt="LDTR"; memop=MemOp_LOAD; acctype=AccType_UNPRIV; signed=false; off32=Some {datasize=DataSize32}; off64=Some {datasize=DataSize64}} ;
+ "LDTRB" , LDSTTUR {txt="LDTRB"; memop=MemOp_LOAD; acctype=AccType_UNPRIV; signed=false; off32=Some {datasize=DataSize8}; off64=None} ;
+ "LDTRH" , LDSTTUR {txt="LDTRH"; memop=MemOp_LOAD; acctype=AccType_UNPRIV; signed=false; off32=Some {datasize=DataSize16}; off64=None} ;
+ "LDTRSB" , LDSTTUR {txt="LDTRSB"; memop=MemOp_LOAD; acctype=AccType_UNPRIV; signed=true; off32=Some {datasize=DataSize8}; off64=Some {datasize=DataSize8}} ;
+ "LDTRSH" , LDSTTUR {txt="LDTRSH"; memop=MemOp_LOAD; acctype=AccType_UNPRIV; signed=true; off32=Some {datasize=DataSize16}; off64=Some {datasize=DataSize16}} ;
+ "LDTRSW" , LDSTTUR {txt="LDTRSW"; memop=MemOp_LOAD; acctype=AccType_UNPRIV; signed=true; off32=None; off64=Some {datasize=DataSize32}} ;
+ "LDUR" , LDSTTUR {txt="LDUR"; memop=MemOp_LOAD; acctype=AccType_NORMAL; signed=false; off32=Some {datasize=DataSize32}; off64=Some {datasize=DataSize64}} ;
+ "LDURB" , LDSTTUR {txt="LDURB"; memop=MemOp_LOAD; acctype=AccType_NORMAL; signed=false; off32=Some {datasize=DataSize8}; off64=None} ;
+ "LDURH" , LDSTTUR {txt="LDURH"; memop=MemOp_LOAD; acctype=AccType_NORMAL; signed=false; off32=Some {datasize=DataSize16}; off64=None} ;
+ "LDURSB" , LDSTTUR {txt="LDURSB"; memop=MemOp_LOAD; acctype=AccType_NORMAL; signed=true; off32=Some {datasize=DataSize8}; off64=Some {datasize=DataSize8}} ;
+ "LDURSH" , LDSTTUR {txt="LDURSH"; memop=MemOp_LOAD; acctype=AccType_NORMAL; signed=true; off32=Some {datasize=DataSize16}; off64=Some {datasize=DataSize16}} ;
+ "LDURSW" , LDSTTUR {txt="LDURSW"; memop=MemOp_LOAD; acctype=AccType_NORMAL; signed=true; off32=None; off64=Some {datasize=DataSize32}} ;
+ "STTR" , LDSTTUR {txt="STTR"; memop=MemOp_STORE; acctype=AccType_UNPRIV; signed=false; off32=Some {datasize=DataSize32}; off64=Some {datasize=DataSize64}} ;
+ "STTRB" , LDSTTUR {txt="STTRB"; memop=MemOp_STORE; acctype=AccType_UNPRIV; signed=false; off32=Some {datasize=DataSize8}; off64=None} ;
+ "STTRH" , LDSTTUR {txt="STTRH"; memop=MemOp_STORE; acctype=AccType_UNPRIV; signed=false; off32=Some {datasize=DataSize16}; off64=None} ;
+ "STUR" , LDSTTUR {txt="STUR"; memop=MemOp_STORE; acctype=AccType_NORMAL; signed=false; off32=Some {datasize=DataSize32}; off64=Some {datasize=DataSize64}} ;
+ "STURB" , LDSTTUR {txt="STURB"; memop=MemOp_STORE; acctype=AccType_NORMAL; signed=false; off32=Some {datasize=DataSize8}; off64=None} ;
+ "STURH" , LDSTTUR {txt="STURH"; memop=MemOp_STORE; acctype=AccType_NORMAL; signed=false; off32=Some {datasize=DataSize16}; off64=None} ;
+
+ "MADD" , MADDSUB {txt="MADD"; sub_op=false} ;
+ "MSUB" , MADDSUB {txt="MSUB"; sub_op=true} ;
+
+ "MUL" , MUL {txt="MUL"; sub_op=false} ;
+ "MNEG" , MUL {txt="MNEG"; sub_op=true} ;
+
+ "MOVK" , MOVWIDE {txt="MOVK"; opcode=MoveWideOp_K} ;
+ "MOVN" , MOVWIDE {txt="MOVN"; opcode=MoveWideOp_N} ;
+ "MOVZ" , MOVWIDE {txt="MOVZ"; opcode=MoveWideOp_Z} ;
+
+ "NEG" , NEG {txt="NEG"; setflags=false} ;
+ "NEGS" , NEG {txt="NEGS"; setflags=true} ;
+
+ "NGC" , NGC {txt="NGC"; setflags=false} ;
+ "NGCS" , NGC {txt="NGCS"; setflags=true} ;
+
+ "RBIT" , REV {txt="RBIT"; op32=Some RevOp_RBIT; op64=RevOp_RBIT} ;
+ "REV" , REV {txt="REV"; op32=Some RevOp_REV32; op64=RevOp_REV64} ;
+ "REV16" , REV {txt="REV16"; op32=Some RevOp_REV16; op64=RevOp_REV16} ;
+ "REV32" , REV {txt="REV32"; op32=None; op64=RevOp_REV32} ;
+
+ "SDIV" , DIV {txt="SDIV"; unsigned=false} ;
+ "UDIV" , DIV {txt="UDIV"; unsigned=true} ;
+
+ "SMADDL" , MADDSUBL {txt="SMADDL"; sub_op=false; unsigned=false} ;
+ "SMSUBL" , MADDSUBL {txt="SMSUBL"; sub_op=true; unsigned=false} ;
+ "UMADDL" , MADDSUBL {txt="UMADDL"; sub_op=false; unsigned=true} ;
+ "UMSUBL" , MADDSUBL {txt="UMSUBL"; sub_op=true; unsigned=true} ;
+
+ "SMULH" , MULH {txt="SMULH"; unsigned=false} ;
+ "UMULH" , MULH {txt="UMULH"; unsigned=true} ;
+
+ "SMULL" , MULL {txt="SMULL"; unsigned=false} ;
+ "UMULL" , MULL {txt="UMULL"; unsigned=true} ;
+
+ "LDP" , LDSTP {txt="LDP"; memop=MemOp_LOAD} ;
+ "STP" , LDSTP {txt="STP"; memop=MemOp_STORE} ;
+
+ "TBZ" , TBZ {txt="TBZ"; bit_val=false} ;
+ "TBNZ" , TBZ {txt="TBNZ"; bit_val=true} ;
+
+ "SBFIZ" , BFIZ {txt="SBFIZ"; extend=true} ;
+ "UBFIZ" , BFIZ {txt="UBFIZ"; extend=false} ;
+
+ "SBFX" , BFX {txt="SBFX"; extend=true} ;
+ "UBFX" , BFX {txt="UBFX"; extend=false} ;
+
+ "SMNEGL" , MNEGL {txt="SMNEGL"; unsigned=false} ;
+ "UMNEGL" , MNEGL {txt="UMNEGL"; unsigned=true} ;
+
+ "BFI" , BFI {txt="BFI"} ;
+ "BFXIL" , BFXIL {txt="BFXIL"} ;
+ "CLREX" , CLREX {txt="CLREX"} ;
+ "EXTR" , EXTR {txt="EXTR"} ;
+ "HINT" , HINT {txt="HINT"} ;
+ "ISB" , ISB {txt="ISB"} ;
+ "LDPSW" , LDPSW {txt="LDPSW"} ;
+ "MOV" , MOV {txt="MOV"} ;
+ "MVN" , MVN {txt="MVN"} ;
+ "NOP" , NOP {txt="NOP"} ;
+ "PRFM" , PRFM {txt="PRFM"} ;
+ "PRFUM" , PRFUM {txt="PRFUM"} ;
+ "RET" , RET {txt="RET"} ;
+ "TST" , TST {txt="TST"} ;
+ "MRS" , MRS {txt="MRS"} ;
+ "MSR" , MSR {txt="MSR"} ;
+
+
+(*** instructions/operands ***)
+
+ "LSL" , SHIFT {txt="LSL"; shift_type=ShiftType_LSL} ;
+ "LSR" , SHIFT {txt="LSR"; shift_type=ShiftType_LSR} ;
+ "ASR" , SHIFT {txt="ASR"; shift_type=ShiftType_ASR} ;
+ "ROR" , SHIFT {txt="ROR"; shift_type=ShiftType_ROR} ;
+
+ "UXTB" , EXTEND {txt="UXTB"; _type=ExtendType_UXTB; inst=Some {extend=false; imms=7}} ;
+ "UXTH" , EXTEND {txt="UXTH"; _type=ExtendType_UXTH; inst=Some {extend=false; imms=15}} ;
+ "UXTW" , EXTEND {txt="UXTW"; _type=ExtendType_UXTW; inst=None} ;
+ "UXTX" , EXTEND {txt="UXTX"; _type=ExtendType_UXTX; inst=None} ;
+ "SXTB" , EXTEND {txt="SXTB"; _type=ExtendType_SXTB; inst=Some {extend=true; imms=7}} ;
+ "SXTH" , EXTEND {txt="SXTH"; _type=ExtendType_SXTH; inst=Some {extend=true; imms=15}} ;
+ "SXTW" , EXTEND {txt="SXTW"; _type=ExtendType_SXTW; inst=Some {extend=true; imms=31}} ;
+ "SXTX" , EXTEND {txt="SXTX"; _type=ExtendType_SXTX; inst=None} ;
+
+(*** operands: ***)
+
+ "EQ" , COND 0b0000 ;
+ "NE" , COND 0b0001 ;
+ "CS" , COND 0b0010 ;
+ "HS" , COND 0b0010 ;
+ "CC" , COND 0b0011 ;
+ "LO" , COND 0b0011 ;
+ "MI" , COND 0b0100 ;
+ "PL" , COND 0b0101 ;
+ "VS" , COND 0b0110 ;
+ "VC" , COND 0b0111 ;
+ "HI" , COND 0b1000 ;
+ "LS" , COND 0b1001 ;
+ "GE" , COND 0b1010 ;
+ "LT" , COND 0b1011 ;
+ "GT" , COND 0b1100 ;
+ "LE" , COND 0b1101 ;
+ "AL" , COND 0b1110 ;
+ "NV" , COND 0b1111 ; (* ARM: exists only to provide a valid disassembly
+ of the 0b1111 encoding, otherwise its
+ behavior is identical to AL *)
+
+ "OSHLD" , BARROP {domain=MBReqDomain_OuterShareable; types=MBReqTypes_Reads} ;
+ "OSHST" , BARROP {domain=MBReqDomain_OuterShareable; types=MBReqTypes_Writes} ;
+ "OSH" , BARROP {domain=MBReqDomain_OuterShareable; types=MBReqTypes_All} ;
+ "NSHLD" , BARROP {domain=MBReqDomain_Nonshareable; types=MBReqTypes_Reads} ;
+ "NSHST" , BARROP {domain=MBReqDomain_Nonshareable; types=MBReqTypes_Writes} ;
+ "NSH" , BARROP {domain=MBReqDomain_Nonshareable; types=MBReqTypes_All} ;
+ "ISHLD" , BARROP {domain=MBReqDomain_InnerShareable; types=MBReqTypes_Reads} ;
+ "ISHST" , BARROP {domain=MBReqDomain_InnerShareable; types=MBReqTypes_Writes} ;
+ "ISH" , BARROP {domain=MBReqDomain_InnerShareable; types=MBReqTypes_All} ;
+ "LD" , BARROP {domain=MBReqDomain_FullSystem; types=MBReqTypes_Reads} ;
+ "ST" , BARROP {domain=MBReqDomain_FullSystem; types=MBReqTypes_Writes} ;
+ "SY" , BARROP {domain=MBReqDomain_FullSystem; types=MBReqTypes_All} ;
+
+ "PLDL1KEEP" , PRFOP (X (Ireg R0)) ;
+ "PLDL1STRM" , PRFOP (X (Ireg R1)) ;
+ "PLDL2KEEP" , PRFOP (X (Ireg R2)) ;
+ "PLDL2STRM" , PRFOP (X (Ireg R3)) ;
+ "PLDL3KEEP" , PRFOP (X (Ireg R4)) ;
+ "PLDL3STRM" , PRFOP (X (Ireg R5)) ;
+
+ "PLIL1KEEP" , PRFOP (X (Ireg R8)) ;
+ "PLIL1STRM" , PRFOP (X (Ireg R9)) ;
+ "PLIL2KEEP" , PRFOP (X (Ireg R10)) ;
+ "PLIL2STRM" , PRFOP (X (Ireg R11)) ;
+ "PLIL3KEEP" , PRFOP (X (Ireg R12)) ;
+ "PLIL3STRM" , PRFOP (X (Ireg R13)) ;
+
+ "PSTL1KEEP" , PRFOP (X (Ireg R16)) ;
+ "PSTL1STRM" , PRFOP (X (Ireg R17)) ;
+ "PSTL2KEEP" , PRFOP (X (Ireg R18)) ;
+ "PSTL2STRM" , PRFOP (X (Ireg R19)) ;
+ "PSTL3KEEP" , PRFOP (X (Ireg R20)) ;
+ "PSTL3STRM" , PRFOP (X (Ireg R21)) ;
+
+ "NZCV" , SYSREG {sys_op0=0b11; sys_op1=0b011; sys_op2=0b000; sys_crn=0b0100; sys_crm=0b0010} ;
+ "DAIF" , SYSREG {sys_op0=0b11; sys_op1=0b011; sys_op2=0b001; sys_crn=0b0100; sys_crm=0b0010} ;
+ "TPIDR_EL0" , SYSREG {sys_op0=0b11; sys_op1=0b011; sys_op2=0b010; sys_crn=0b1101; sys_crm=0b0000} ;
+ "TPIDR_EL1" , SYSREG {sys_op0=0b11; sys_op1=0b000; sys_op2=0b100; sys_crn=0b1101; sys_crm=0b0000} ;
+ "TPIDR_EL2" , SYSREG {sys_op0=0b11; sys_op1=0b100; sys_op2=0b010; sys_crn=0b1101; sys_crm=0b0000} ;
+ "TPIDR_EL3" , SYSREG {sys_op0=0b11; sys_op1=0b011; sys_op2=0b011; sys_crn=0b1101; sys_crm=0b0000} ;
+
+ "SPSel" , PSTATEFIELD (PSTATEField_SP) ;
+ "DAIFSet" , PSTATEFIELD (PSTATEField_DAIFSet) ;
+ "DAIFClr" , PSTATEFIELD (PSTATEField_DAIFClr) ;
diff --git a/aarch64_small/gen/map.hgen b/aarch64_small/gen/map.hgen
new file mode 100644
index 00000000..62899c91
--- /dev/null
+++ b/aarch64_small/gen/map.hgen
@@ -0,0 +1,44 @@
+| `AArch64TMStart t -> `AArch64TMStart (map_reg t)
+| `AArch64TMCommit -> `AArch64TMCommit
+| `AArch64TMAbort (retry,reason) -> `AArch64TMAbort (retry,reason)
+| `AArch64TMTest -> `AArch64TMTest
+
+| `AArch64ImplementationDefinedStopFetching -> `AArch64ImplementationDefinedStopFetching
+| `AArch64ImplementationDefinedThreadStart -> `AArch64ImplementationDefinedThreadStart
+| `AArch64ImplementationDefinedTestBeginEnd (isEnd) -> `AArch64ImplementationDefinedTestBeginEnd (isEnd)
+| `AArch64AddSubCarry (d,n,m,datasize,sub_op,setflags) -> `AArch64AddSubCarry (map_reg d,map_reg n,map_reg m,datasize,sub_op,setflags)
+| `AArch64AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift) -> `AArch64AddSubExtendRegister (map_reg d,map_reg n,map_reg m,datasize,sub_op,setflags,extend_type,shift)
+| `AArch64AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount) -> `AArch64AddSubShiftedRegister (map_reg d,map_reg n,map_reg m,datasize,sub_op,setflags,shift_type,shift_amount)
+| `AArch64AddSubImmediate (d,n,datasize,sub_op,setflags,imm) -> `AArch64AddSubImmediate (map_reg d,map_reg n,datasize,sub_op,setflags,imm)
+| `AArch64Address (d,page,imm) -> `AArch64Address (map_reg d,page,imm)
+| `AArch64LogicalImmediate (d,n,datasize,setflags,op,imm) -> `AArch64LogicalImmediate (map_reg d,map_reg n,datasize,setflags,op,imm)
+| `AArch64LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert) -> `AArch64LogicalShiftedRegister (map_reg d,map_reg n,map_reg m,datasize,setflags,op,shift_type,shift_amount,invert)
+| `AArch64Shift (d,n,m,datasize,shift_type) -> `AArch64Shift (map_reg d,map_reg n,map_reg m,datasize,shift_type)
+| `AArch64BranchConditional (offset,condition) -> `AArch64BranchConditional (offset,condition)
+| `AArch64BranchImmediate (branch_type,offset) -> `AArch64BranchImmediate (branch_type,offset)
+| `AArch64BitfieldMove (d,n,datasize,inzero,extend,_R,_S,wmask,tmask) -> `AArch64BitfieldMove (map_reg d,map_reg n,datasize,inzero,extend,_R,_S,wmask,tmask)
+| `AArch64BranchRegister (n,branch_type) -> `AArch64BranchRegister (map_reg n,branch_type)
+| `AArch64CompareAndBranch (t,datasize,iszero,offset) -> `AArch64CompareAndBranch (map_reg t,datasize,iszero,offset)
+| `AArch64ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm) -> `AArch64ConditionalCompareImmediate (map_reg n,datasize,sub_op,condition,flags,imm)
+| `AArch64ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags) -> `AArch64ConditionalCompareRegister (map_reg n,map_reg m,datasize,sub_op,condition,flags)
+| `AArch64ClearExclusiveMonitor (imm) -> `AArch64ClearExclusiveMonitor (imm)
+| `AArch64CountLeading (d,n,datasize,opcode) -> `AArch64CountLeading (map_reg d,map_reg n,datasize,opcode)
+| `AArch64CRC (d,n,m,size,crc32c) -> `AArch64CRC (map_reg d,map_reg n,map_reg m,size,crc32c)
+| `AArch64ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc) -> `AArch64ConditionalSelect (map_reg d,map_reg n,map_reg m,datasize,condition,else_inv,else_inc)
+| `AArch64Barrier (op,domain,types) -> `AArch64Barrier (op,domain,types)
+| `AArch64ExtractRegister (d,n,m,datasize,lsb) -> `AArch64ExtractRegister (map_reg d,map_reg n,map_reg m,datasize,lsb)
+| `AArch64Hint (op) -> `AArch64Hint (op)
+| `AArch64LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize) -> `AArch64LoadStoreAcqExc (map_reg n,map_reg t,map_reg t2,map_reg s,acctype,excl,pair,memop,elsize,regsize,datasize)
+| `AArch64LoadStorePair (wback,postindex,n,t,t2,acctype,memop,signed,datasize,offset) -> `AArch64LoadStorePair (wback,postindex,map_reg n,map_reg t,map_reg t2,acctype,memop,signed,datasize,offset)
+| `AArch64LoadImmediate (n,t,acctype,memop,signed,wback,postindex,offset,regsize,datasize) -> `AArch64LoadImmediate (map_reg n,map_reg t,acctype,memop,signed,wback,postindex,offset,regsize,datasize)
+| `AArch64LoadLiteral (t,memop,signed,size,offset,datasize) -> `AArch64LoadLiteral (map_reg t,memop,signed,size,offset,datasize)
+| `AArch64LoadRegister (n,t,m,acctype,memop,signed,wback,postindex,extend_type,shift,regsize,datasize) -> `AArch64LoadRegister (map_reg n,map_reg t,map_reg m,acctype,memop,signed,wback,postindex,extend_type,shift,regsize,datasize)
+| `AArch64MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op) -> `AArch64MultiplyAddSub (map_reg d,map_reg n,map_reg m,map_reg a,destsize,datasize,sub_op)
+| `AArch64MoveWide (d,datasize,imm,pos,opcode) -> `AArch64MoveWide (map_reg d,datasize,imm,pos,opcode)
+| `AArch64Reverse (d,n,datasize,op) -> `AArch64Reverse (map_reg d,map_reg n,datasize,op)
+| `AArch64Division (d,n,m,datasize,unsigned) -> `AArch64Division (map_reg d,map_reg n,map_reg m,datasize,unsigned)
+| `AArch64MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,unsigned) -> `AArch64MultiplyAddSubLong (map_reg d,map_reg n,map_reg m,map_reg a,destsize,datasize,sub_op,unsigned)
+| `AArch64MultiplyHigh (d,n,m,a,destsize,datasize,unsigned) -> `AArch64MultiplyHigh (map_reg d,map_reg n,map_reg m,map_reg a,destsize,datasize,unsigned)
+| `AArch64TestBitAndBranch (t,datasize,bit_pos,bit_val,offset) -> `AArch64TestBitAndBranch (map_reg t,datasize,bit_pos,bit_val,offset)
+| `AArch64MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read) -> `AArch64MoveSystemRegister (map_reg t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read)
+| `AArch64MoveSystemImmediate (operand,field) -> `AArch64MoveSystemImmediate (operand,field)
diff --git a/aarch64_small/gen/parser.hgen b/aarch64_small/gen/parser.hgen
new file mode 100644
index 00000000..53fc1c8f
--- /dev/null
+++ b/aarch64_small/gen/parser.hgen
@@ -0,0 +1,1403 @@
+ /* TSTART */
+ | TSTART xreg
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xt>")
+ else `AArch64TMStart $2 }
+
+ /* TCOMMIT */
+ | TCOMMIT
+ { `AArch64TMCommit }
+
+ /* TABORT */
+ | TABORT imm
+ { if not (iskbituimm 6 $2) then error_arg "<imm> must be in the range 0 to 63"
+ else `AArch64TMAbort (($2 lsr 5) <> 0, $2 mod 32) }
+
+ /* TTEST */
+ | TTEST
+ {`AArch64TMTest}
+
+ | ADCSBC wreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>")
+ else `AArch64AddSubCarry ($2,$4,$6,Set32,$1.sub_op,$1.setflags) }
+ | ADCSBC xreg COMMA xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>")
+ else `AArch64AddSubCarry ($2,$4,$6,Set64,$1.sub_op,$1.setflags) }
+
+ /* ADC/ADCS/SBC/SBCS */
+
+ | ADCSBC wreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>")
+ else `AArch64AddSubCarry ($2,$4,$6,Set32,$1.sub_op,$1.setflags) }
+ | ADCSBC xreg COMMA xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>")
+ else `AArch64AddSubCarry ($2,$4,$6,Set64,$1.sub_op,$1.setflags) }
+
+ /* ADD/SUB/ADDS/SUBS (extended register), and when noted (shifted register) */
+
+ | ADDSUB wreg COMMA wreg COMMA wreg
+ { (* ambiguous with (shifted register) *)
+ if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then
+ error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then
+ error_registers ("expected " ^ $1.txt ^ " <Wd|WSP>, <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set32,$1.sub_op,$1.setflags,ExtendType_UXTW,0) }
+ | ADDSUB wreg COMMA wreg COMMA wreg COMMA EXTEND
+ { if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then
+ error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then
+ error_registers ("expected " ^ $1.txt ^ " <Wd|WSP>, <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set32,$1.sub_op,$1.setflags,$8._type,0) }
+ | ADDSUB wreg COMMA wreg COMMA wreg COMMA SHIFT
+ { if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if (not $1.setflags) && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd|WSP>, <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if not ($8.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set32,$1.sub_op,$1.setflags,ExtendType_UXTW,0) }
+ | ADDSUB wreg COMMA wreg COMMA wreg COMMA EXTEND imm
+ { if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd|WSP>, <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if not (0 <= $9 && $9 <= 4) then error_arg "<amount> must be in the range 0 to 4"
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set32,$1.sub_op,$1.setflags,$8._type,$9) }
+ | ADDSUB wreg COMMA wreg COMMA wreg COMMA SHIFT imm
+ { if (issp $2 || issp $4) then
+ begin
+ (* (extended register) *)
+ if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd|WSP>, <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if not ($8.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else if not (0 <= $9 && $9 <= 4) then error_arg "<amount> must be in the range 0 to 4"
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set32,$1.sub_op,$1.setflags,ExtendType_UXTW,$9)
+ end
+ else
+ begin
+ (* (shifted register) *)
+ if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>{, <shift> #<amount>}")
+ else if $8.shift_type = ShiftType_ROR then error_arg "<shift> must be one of LSL,LSR,ASR"
+ else if not (0 <= $9 && $9 <= 31) then error_arg "<amount> must be in the range 0 to 31"
+ else `AArch64AddSubShiftedRegister ($2,$4,$6,Set32,$1.sub_op,$1.setflags,$8.shift_type,$9)
+ end }
+
+ | ADDSUB xreg COMMA xreg COMMA xreg
+ { (* ambiguous with (shifted register) *)
+ if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set64,$1.sub_op,$1.setflags,ExtendType_UXTX,0) }
+ | ADDSUB xreg COMMA xreg COMMA wreg COMMA EXTEND
+ { if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if $8._type = ExtendType_UXTX || $8._type = ExtendType_SXTX then error_arg "<R> doesn't match <extend>"
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set64,$1.sub_op,$1.setflags,$8._type,0) }
+ | ADDSUB xreg COMMA xreg COMMA wreg COMMA SHIFT
+ { if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not ($8.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set64,$1.sub_op,$1.setflags,ExtendType_UXTX,0) }
+ | ADDSUB xreg COMMA xreg COMMA wreg COMMA EXTEND imm
+ { if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not (0 <= $9 && $9 <= 4) then error_arg "<amount> must be in the range 0 to 4."
+ else if $8._type = ExtendType_UXTX || $8._type = ExtendType_SXTX then error_arg "<R> doesn't match <extend>"
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set64,$1.sub_op,$1.setflags,$8._type,$9) }
+ | ADDSUB xreg COMMA xreg COMMA wreg COMMA SHIFT imm
+ { if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not ($8.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else if not (0 <= $9 && $9 <= 4) then error_arg "<amount> must be in the range 0 to 4."
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set64,$1.sub_op,$1.setflags,ExtendType_UXTX,$9) }
+ | ADDSUB xreg COMMA xreg COMMA xreg COMMA EXTEND
+ { if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not ($8._type = ExtendType_UXTX || $8._type = ExtendType_SXTX) then error_arg "<R> doesn't match <extend>"
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set64,$1.sub_op,$1.setflags,$8._type,0) }
+ | ADDSUB xreg COMMA xreg COMMA xreg COMMA SHIFT
+ { if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not ($8.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set64,$1.sub_op,$1.setflags,ExtendType_UXTX,0) }
+ | ADDSUB xreg COMMA xreg COMMA xreg COMMA EXTEND imm
+ { if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not (0 <= $9 && $9 <= 4) then error_arg "<amount> must be in the range 0 to 4."
+ else if not ($8._type = ExtendType_UXTX || $8._type = ExtendType_SXTX) then error_arg "<R> doesn't match <extend>"
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set64,$1.sub_op,$1.setflags,$8._type,$9) }
+ | ADDSUB xreg COMMA xreg COMMA xreg COMMA SHIFT imm
+ { if (issp $2 || issp $4) then
+ begin
+ (* (extended register) *)
+ if $1.setflags && not (isregzr $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not ($8.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else if not (0 <= $9 && $9 <= 4) then error_arg "<amount> must be in the range 0 to 4."
+ else `AArch64AddSubExtendRegister ($2,$4,$6,Set64,$1.sub_op,$1.setflags,ExtendType_UXTX,$9)
+ end
+ else
+ begin
+ (* (shifted register) *)
+ if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>{, <shift> #<amount>}")
+ else if $8.shift_type = ShiftType_ROR then error_arg "<shift> must be one of LSL,LSR,ASR"
+ else if not (0 <= $9 && $9 <= 63) then error_arg "<amount> must be in the range 0 to 63"
+ else `AArch64AddSubShiftedRegister ($2,$4,$6,Set64,$1.sub_op,$1.setflags,$8.shift_type,$9)
+ end }
+
+ /* ADD/SUB/ADDS/SUBS (immediate) */
+
+ | ADDSUB wreg COMMA wreg COMMA imm
+ { if $1.setflags && not (isregzr $2 && isregsp $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn|WSP>, #<imm>{, <shift>}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4) then error_registers ("expected " ^ $1.txt ^ " <Wd|WSP>, <Wn|WSP>, #<imm>{, <shift>}")
+ else if not (0 <= $6 && $6 <= 4095) then error_arg "<imm> must be in the range 0 to 4095"
+ else `AArch64AddSubImmediate ($2,$4,Set32,$1.sub_op,$1.setflags,reg_size_bits_R32_of_int $6) }
+ | ADDSUB wreg COMMA wreg COMMA imm COMMA SHIFT imm
+ { if $1.setflags && not (isregzr $2 && isregsp $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn|WSP>, #<imm>{, <shift>}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4) then error_registers ("expected " ^ $1.txt ^ " <Wd|WSP>, <Wn|WSP>, #<imm>{, <shift>}")
+ else if not (0 <= $6 && $6 <= 4095) then error_arg "<imm> must be in the range 0 to 4095"
+ else if not ($8.shift_type = ShiftType_LSL && ($9 = 0 || $9 = 12)) then error_arg "<shift> must be 'LSL #0' or 'LSL #12'"
+ else `AArch64AddSubImmediate ($2,$4,Set32,$1.sub_op,$1.setflags,reg_size_bits_R32_of_int ($6 lsl $9)) }
+ | ADDSUB xreg COMMA xreg COMMA imm
+ { if $1.setflags && not (isregzr $2 && isregsp $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn|SP>, #<imm>{, <shift>}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, #<imm>{, <shift>}")
+ else if not (0 <= $6 && $6 <= 4095) then error_arg "<imm> must be in the range 0 to 4095"
+ else `AArch64AddSubImmediate ($2,$4,Set64,$1.sub_op,$1.setflags,reg_size_bits_R64_of_int $6) }
+ | ADDSUB xreg COMMA xreg COMMA imm COMMA SHIFT imm
+ { if $1.setflags && not (isregzr $2 && isregsp $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn|SP>, #<imm>{, <shift>}")
+ else if not $1.setflags && not (isregsp $2 && isregsp $4) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>, #<imm>{, <shift>}")
+ else if not (0 <= $6 && $6 <= 4095) then error_arg "<imm> must be in the range 0 to 4095"
+ else if not ($8.shift_type = ShiftType_LSL && ($9 = 0 || $9 = 12)) then error_arg "<shift> must be 'LSL #0' or 'LSL #12'"
+ else `AArch64AddSubImmediate ($2,$4,Set64,$1.sub_op,$1.setflags,reg_size_bits_R64_of_int ($6 lsl $9)) }
+
+ /* ADR/ADRP */
+/*
+ | ADR xreg COMMA NAME
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <label>")
+ else `AArch64Address ($2,$1.page,(* FIXME: label *)) }
+*/
+
+ /* AND/ANDS/EOR/ORR (immediate) */
+
+ | LOGOP wreg COMMA wreg COMMA big_imm
+ { if $1.invert then error_arg "bad logical operator"
+ else if not $1.setflags && not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd|WSP>, <Wn>, #<imm>")
+ else if $1.setflags && not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, #<imm>")
+ else
+ match encodeBitMasks 32 $6 with
+ | None -> error_arg "<imm> can not be encoded as bitmask"
+ | _ -> `AArch64LogicalImmediate($2,$4,Set32,$1.setflags,$1.op,reg_size_bits_R32_of_big_int $6) }
+ | LOGOP xreg COMMA xreg COMMA big_imm
+ { if $1.invert then error_arg "bad logical operator"
+ else if not $1.setflags && not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn>, #<imm>")
+ else if $1.setflags && not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, #<imm>")
+ else
+ match encodeBitMasks 64 $6 with
+ | None -> error_arg "<imm> can not be encoded as bitmask"
+ | _ -> `AArch64LogicalImmediate($2,$4,Set64,$1.setflags,$1.op,reg_size_bits_R64_of_big_int $6) }
+
+ /* AND/ANDS/EOR/ORR/BIC/BICS/EON/ORN (shifted register) */
+
+ | LOGOP wreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>{, <shift> #<amount>}")
+ else `AArch64LogicalShiftedRegister($2,$4,$6,Set32,$1.setflags,$1.op,ShiftType_LSL,0,$1.invert) }
+ | LOGOP wreg COMMA wreg COMMA wreg COMMA SHIFT imm
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>{, <shift> #<amount>}")
+ else if not (0 <= $9 && $9 <= 31) then error_arg "<amount> must be in the range 0 to 31"
+ else `AArch64LogicalShiftedRegister($2,$4,$6,Set32,$1.setflags,$1.op,$8.shift_type,$9,$1.invert) }
+
+ | LOGOP xreg COMMA xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>{, <shift> #<amount>}")
+ else `AArch64LogicalShiftedRegister($2,$4,$6,Set64,$1.setflags,$1.op,ShiftType_LSL,0,$1.invert) }
+ | LOGOP xreg COMMA xreg COMMA xreg COMMA SHIFT imm
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>{, <shift> #<amount>}")
+ else if not (0 <= $9 && $9 <= 63) then error_arg "<amount> must be in the range 0 to 63"
+ else `AArch64LogicalShiftedRegister($2,$4,$6,Set64,$1.setflags,$1.op,$8.shift_type,$9,$1.invert) }
+
+
+ /* LSL/LSR/ASR/ROR (register) alias of LSLV/LSRV/ASRV/RORV */
+
+ | SHIFT wreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>")
+ else `AArch64Shift($2,$4,$6,Set32,$1.shift_type) }
+ | SHIFT xreg COMMA xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>")
+ else `AArch64Shift($2,$4,$6,Set64,$1.shift_type) }
+
+ /* LSL/LSR/ASR/ROR (immediate) alias of UBFM/UBFM/SBFM/EXTR */
+
+ | SHIFT wreg COMMA wreg COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, #<shift>")
+ else if not (0 <= $6 && $6 <= 31) then error_arg "<shift> must be in the range 0 to 31"
+ else match $1.shift_type with
+ | ShiftType_ASR ->
+ let (wmask,tmask) = decodeBitMasks 32 0 31 $6 false in
+ `AArch64BitfieldMove($2,$4,Set32,true,true,$6,31,reg_size_bits_R32_of_big_int wmask,reg_size_bits_R32_of_big_int tmask)
+ | ShiftType_LSL ->
+ let (wmask,tmask) = decodeBitMasks 32 0 (31-$6) (-$6 mod 32) false in
+ `AArch64BitfieldMove($2,$4,Set32,true,false,-$6 mod 32,31-$6,reg_size_bits_R32_of_big_int wmask,reg_size_bits_R32_of_big_int tmask)
+ | ShiftType_LSR ->
+ let (wmask,tmask) = decodeBitMasks 32 0 31 $6 false in
+ `AArch64BitfieldMove($2,$4,Set32,true,false,$6,31,reg_size_bits_R32_of_big_int wmask,reg_size_bits_R32_of_big_int tmask)
+ | ShiftType_ROR ->
+ `AArch64ExtractRegister($2,$4,$4,Set32,$6) }
+ | SHIFT xreg COMMA xreg COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, #<shift>")
+ else if not (0 <= $6 && $6 <= 63) then error_arg "<shift> must be in the range 0 to 64"
+ else match $1.shift_type with
+ | ShiftType_ASR ->
+ let (wmask,tmask) = decodeBitMasks 64 1 63 $6 false in
+ `AArch64BitfieldMove($2,$4,Set64,true,true,$6,63,reg_size_bits_R64_of_big_int wmask,reg_size_bits_R64_of_big_int tmask)
+ | ShiftType_LSL ->
+ let (wmask,tmask) = decodeBitMasks 64 1 (63-$6) ((64-$6) mod 64) false in
+ `AArch64BitfieldMove($2,$4,Set64,true,false,(64-$6) mod 64,63-$6,reg_size_bits_R64_of_big_int wmask,reg_size_bits_R64_of_big_int tmask)
+ | ShiftType_LSR ->
+ let (wmask,tmask) = decodeBitMasks 64 1 63 $6 false in
+ `AArch64BitfieldMove($2,$4,Set64,true,false,$6,63,reg_size_bits_R64_of_big_int wmask,reg_size_bits_R64_of_big_int tmask)
+ | ShiftType_ROR ->
+ `AArch64ExtractRegister($2,$4,$4,Set64,$6) }
+
+ /* ASRV/LSLV/LSRV/RORV */
+
+ | SHIFTOP wreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>")
+ else `AArch64Shift($2,$4,$6,Set32,$1.shift_type) }
+ | SHIFTOP xreg COMMA xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>")
+ else `AArch64Shift($2,$4,$6,Set64,$1.shift_type) }
+
+ /* B.cond */
+/*
+ | BCOND NAME
+ { `AArch64BranchConditional((* FIXME: label *),$1.condition) }
+*/
+ /* B/BL */
+/*
+ | B NAME
+ { `AArch64BranchImmediate($1.branch_type,(* FIXME: label *)) }
+*/
+ /* BFI alias of BFM */
+
+ | BFI wreg COMMA wreg COMMA imm COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, #<lsb>, #<width>")
+ else if not (0 <= $6 && $6 <= 31) then error_arg "<lsb> must be in the range 0 to 31"
+ else if not (1 <= $8 && $8 <= 32-$6) then error_arg "<width> must be in the range 1 to 32-<lsb>"
+ else
+ let (wmask,tmask) = decodeBitMasks 32 0 ($8 - 1) (-$6 mod 32) false in
+ `AArch64BitfieldMove($2,$4,Set32,false,false,(-$6 mod 32),($8 - 1),reg_size_bits_R32_of_big_int wmask,reg_size_bits_R32_of_big_int tmask) }
+ | BFI xreg COMMA xreg COMMA imm COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, #<lsb>, #<width>")
+ else if not (0 <= $6 && $6 <= 63) then error_arg "<lsb> must be in the range 0 to 63"
+ else if not (1 <= $8 && $8 <= 64-$6) then error_arg "<width> must be in the range 1 to 64-<lsb>"
+ else
+ let (wmask,tmask) = decodeBitMasks 64 1 ($8 - 1) (-$6 mod 64) false in
+ `AArch64BitfieldMove($2,$4,Set64,false,false,(-$6 mod 64),($8 - 1),reg_size_bits_R64_of_big_int wmask,reg_size_bits_R64_of_big_int tmask) }
+
+ /* BFM/SBFM/UBFM */
+
+ | BFM wreg COMMA wreg COMMA imm COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, #<immr>, #<imms>")
+ else if not (0 <= $6 && $6 <= 31) then error_arg "<immr> must be in the range 0 to 31"
+ else if not (0 <= $8 && $8 <= 31) then error_arg "<imms> must be in the range 0 to 31"
+ else
+ let (wmask,tmask) = decodeBitMasks 32 0 $8 $6 false in
+ `AArch64BitfieldMove($2,$4,Set32,$1.inzero,$1.extend,$6,$8,reg_size_bits_R32_of_big_int wmask,reg_size_bits_R32_of_big_int tmask) }
+ | BFM xreg COMMA xreg COMMA imm COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, #<immr>, #<imms>")
+ else if not (0 <= $6 && $6 <= 63) then error_arg "<immr> must be in the range 0 to 63"
+ else if not (0 <= $8 && $8 <= 63) then error_arg "<imms> must be in the range 0 to 63"
+ else
+ let (wmask,tmask) = decodeBitMasks 64 1 $8 $6 false in
+ `AArch64BitfieldMove($2,$4,Set64,$1.inzero,$1.extend,$6,$8,reg_size_bits_R64_of_big_int wmask,reg_size_bits_R64_of_big_int tmask) }
+
+ /* BFXIL alias of BFM */
+
+ | BFXIL wreg COMMA wreg COMMA imm COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, #<lsb>, #<width>")
+ else if not (0 <= $6 && $6 <= 31) then error_arg "<immr> must be in the range 0 to 31"
+ else if not (1 <= $8 && $8 <= 32-$6) then error_arg "<imms> must be in the range 1 to 32-<lsb>"
+ else
+ let (wmask,tmask) = decodeBitMasks 32 0 ($6+$8-1) $6 false in
+ `AArch64BitfieldMove($2,$4,Set32,false,false,$6,$6+$8-1,reg_size_bits_R32_of_big_int wmask,reg_size_bits_R32_of_big_int tmask) }
+ | BFXIL xreg COMMA xreg COMMA imm COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, #<lsb>, #<width>")
+ else if not (0 <= $6 && $6 <= 63) then error_arg "<immr> must be in the range 0 to 63"
+ else if not (1 <= $8 && $8 <= 64-$6) then error_arg "<imms> must be in the range 1 to 64-<lsb>"
+ else
+ let (wmask,tmask) = decodeBitMasks 64 1 ($6+$8-1) $6 false in
+ `AArch64BitfieldMove($2,$4,Set64,false,false,$6,$6+$8-1,reg_size_bits_R64_of_big_int wmask,reg_size_bits_R64_of_big_int tmask) }
+
+ /* BR/BLR */
+
+ | BR xreg
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xn>")
+ else `AArch64BranchRegister($2,$1.branch_type) }
+
+ /* CBZ/CBNZ */
+/*
+ | CBZ wreg COMMA NAME
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Wt>, <label>")
+ else `AArch64CompareAndBranch($2,Set32,$1.iszero,(* FIXME: label *)) }
+ | CBZ xreg COMMA NAME
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xt>, <label>")
+ else `AArch64CompareAndBranch($2,Set64,$1.iszero,(* FIXME: label *)) }
+*/
+
+ /* CCMN/CCMP (immediate) */
+
+ | CCM wreg COMMA imm COMMA imm COMMA COND
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Wn>, #<imm>, #<nzcv>, <cond>")
+ else if not (iskbituimm 5 $4) then error_arg "<imm> must be in the range 0 to 31"
+ else if not (0 <= $6 && $6 <= 15) then error_arg "<nzcv> must be in the range 0 to 15"
+ else `AArch64ConditionalCompareImmediate($2,Set32,$1.sub_op,$8,$6,reg_size_bits_R32_of_int $4) }
+ | CCM xreg COMMA imm COMMA imm COMMA COND
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xn>, #<imm>, #<nzcv>, <cond>")
+ else if not (iskbituimm 5 $4) then error_arg "<imm> must be in the range 0 to 31"
+ else if not (0 <= $6 && $6 <= 15) then error_arg "<nzcv> must be in the range 0 to 15"
+ else `AArch64ConditionalCompareImmediate($2,Set64,$1.sub_op,$8,$6,reg_size_bits_R64_of_int $4) }
+
+ /* CCMN/CCMP (register) */
+
+ | CCM wreg COMMA wreg COMMA imm COMMA COND
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wn>, <Wm>, #<nzcv>, <cond>")
+ else if not (0 <= $6 && $6 <= 15) then error_arg "<nzcv> must be in the range 0 to 15"
+ else `AArch64ConditionalCompareRegister($2,$4,Set32,$1.sub_op,$8,$6) }
+ | CCM xreg COMMA xreg COMMA imm COMMA COND
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn>, <Xm>, #<nzcv>, <cond>")
+ else if not (0 <= $6 && $6 <= 15) then error_arg "<nzcv> must be in the range 0 to 15"
+ else `AArch64ConditionalCompareRegister($2,$4,Set64,$1.sub_op,$8,$6) }
+
+ /* CINC/CINV/CNEG alias of CSINC/CSINV/CSNEG */
+
+ | CON wreg COMMA wreg COMMA COND
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <cond>")
+ else if ($6 = 0b1110 || $6 = 0b1111) then error_arg "<cond> must not be AL or NV"
+ else `AArch64ConditionalSelect($2,$4,$4,Set32,invert $6,$1.else_inv,$1.else_inc) }
+ | CON xreg COMMA xreg COMMA COND
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <cond>")
+ else if ($6 = 0b1110 || $6 = 0b1111) then error_arg "<cond> must not be AL or NV"
+ else `AArch64ConditionalSelect($2,$4,$4,Set64,invert $6,$1.else_inv,$1.else_inc) }
+
+ /* CLREX */
+
+ | CLREX
+ { `AArch64ClearExclusiveMonitor(15) }
+ | CLREX imm
+ { if not (iskbituimm 4 $2) then error_arg "<imm> must be in the range 0 to 15"
+ else `AArch64ClearExclusiveMonitor($2) }
+
+ /* CLS/CLZ */
+
+ | CL wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>")
+ else `AArch64CountLeading($2,$4,Set32,$1.opcode) }
+ | CL xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>")
+ else `AArch64CountLeading($2,$4,Set64,$1.opcode) }
+
+ /* CMN/CMP (extended register) alias of ADDS/SUBS (extended register) */
+
+ | CM wreg COMMA wreg
+ { (* ambiguous with (shifted register) *)
+ if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else `AArch64AddSubExtendRegister (W ZR,$2,$4,Set32,$1.sub_op,true,ExtendType_UXTW,0) }
+ | CM wreg COMMA wreg COMMA EXTEND
+ { if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else `AArch64AddSubExtendRegister (W ZR,$2,$4,Set32,$1.sub_op,true,$6._type,0) }
+ | CM wreg COMMA wreg COMMA SHIFT
+ { if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if not ($6.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else `AArch64AddSubExtendRegister (W ZR,$2,$4,Set32,$1.sub_op,true,ExtendType_UXTW,0) }
+ | CM wreg COMMA wreg COMMA EXTEND imm
+ { if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if not (0 <= $7 && $7 <= 4) then error_arg "<amount> must be in the range 0 to 4"
+ else `AArch64AddSubExtendRegister (W ZR,$2,$4,Set32,$1.sub_op,true,$6._type,$7) }
+ | CM wreg COMMA wreg COMMA SHIFT imm
+ { if issp $2 then
+ begin
+ (* (extended register) *)
+ if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wn|WSP>, <Wm>{, <extend> {#<amount>}}")
+ else if not ($6.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else if not (0 <= $7 && $7 <= 4) then error_arg "<amount> must be in the range 0 to 4"
+ else `AArch64AddSubExtendRegister (W ZR,$2,$4,Set32,$1.sub_op,true,ExtendType_UXTW,$7)
+ end
+ else
+ begin
+ (* (shifted register) *)
+ if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wn>, <Wm>{, <shift> #<amount>}")
+ else if $6.shift_type = ShiftType_ROR then error_arg "<shift> must be one of LSL,LSR,ASR"
+ else if not (0 <= $7 && $7 <= 31) then error_arg "<amount> must be in the range 0 to 31"
+ else `AArch64AddSubShiftedRegister (W ZR,$2,$4,Set32,$1.sub_op,true,$6.shift_type,$7)
+ end }
+
+ | CM xreg COMMA xreg
+ { (* ambiguous with (shifted register) *)
+ if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else `AArch64AddSubExtendRegister (X ZR,$2,$4,Set64,$1.sub_op,true,ExtendType_UXTX,0) }
+ | CM xreg COMMA wreg COMMA EXTEND
+ { if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if $6._type = ExtendType_UXTX || $6._type = ExtendType_SXTX then error_arg "<R> doesn't match <extend>"
+ else `AArch64AddSubExtendRegister (X ZR,$2,$4,Set64,$1.sub_op,true,$6._type,0) }
+ | CM xreg COMMA wreg COMMA SHIFT
+ { if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not ($6.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else `AArch64AddSubExtendRegister (X ZR,$2,$4,Set64,$1.sub_op,true,ExtendType_UXTX,0) }
+ | CM xreg COMMA wreg COMMA EXTEND imm
+ { if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not (0 <= $7 && $7 <= 4) then error_arg "<amount> must be in the range 0 to 4."
+ else if $6._type = ExtendType_UXTX || $6._type = ExtendType_SXTX then error_arg "<R> doesn't match <extend>"
+ else `AArch64AddSubExtendRegister (X ZR,$2,$4,Set64,$1.sub_op,true,$6._type,$7) }
+ | CM xreg COMMA wreg COMMA SHIFT imm
+ { if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not ($6.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else if not (0 <= $7 && $7 <= 4) then error_arg "<amount> must be in the range 0 to 4."
+ else `AArch64AddSubExtendRegister (X ZR,$2,$4,Set64,$1.sub_op,true,ExtendType_UXTX,$7) }
+ | CM xreg COMMA xreg COMMA EXTEND
+ { if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not ($6._type = ExtendType_UXTX || $6._type = ExtendType_SXTX) then error_arg "<R> doesn't match <extend>"
+ else `AArch64AddSubExtendRegister (X ZR,$2,$4,Set64,$1.sub_op,true,$6._type,0) }
+ | CM xreg COMMA xreg COMMA SHIFT
+ { if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not ($6.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else `AArch64AddSubExtendRegister (X ZR,$2,$4,Set64,$1.sub_op,true,ExtendType_UXTX,0) }
+ | CM xreg COMMA xreg COMMA EXTEND imm
+ { if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, <R><m>{, <extend> {#<amount>}}")
+ else if not (0 <= $7 && $7 <= 4) then error_arg "<amount> must be in the range 0 to 4."
+ else if not ($6._type = ExtendType_UXTX || $6._type = ExtendType_SXTX) then error_arg "<R> doesn't match <extend>"
+ else `AArch64AddSubExtendRegister (X ZR,$2,$4,Set64,$1.sub_op,true,$6._type,$7) }
+ | CM xreg COMMA xreg COMMA SHIFT imm
+ { if issp $2 then
+ begin
+ (* (extended register) *)
+ if not (isregsp $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, <X ZR>")
+ else if not ($6.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of UXTB,UXTH,UXTW,UXTX,SXTB,SXTH,SXTW,SXTX,LSL"
+ else if not (0 <= $7 && $7 <= 4) then error_arg "<amount> must be in the range 0 to 4."
+ else `AArch64AddSubExtendRegister (X ZR,$2,$4,Set64,$1.sub_op,true,ExtendType_UXTX,$7)
+ end
+ else
+ begin
+ (* (shifted register) *)
+ if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn>, <Xm>{, <shift> #<amount>}")
+ else if $6.shift_type = ShiftType_ROR then error_arg "<shift> must be one of LSL,LSR,ASR"
+ else if not (0 <= $7 && $7 <= 63) then error_arg "<amount> must be in the range 0 to 63"
+ else `AArch64AddSubShiftedRegister (X ZR,$2,$4,Set64,$1.sub_op,true,$6.shift_type,$7)
+ end }
+
+ /* CMN/CMP (immediate) alias of ADDS/SUBS (immediate) */
+
+ | CM wreg COMMA imm
+ { if not (isregsp $2) then error_registers ("expected " ^ $1.txt ^ " <Wn|WSP>, #<imm>{, <shift>}")
+ else if not (0 <= $4 && $4 <= 4095) then error_arg "<imm> must be in the range 0 to 4095"
+ else `AArch64AddSubImmediate (W ZR,$2,Set32,$1.sub_op,true,reg_size_bits_R32_of_int $4) }
+ | CM wreg COMMA imm COMMA SHIFT imm
+ { if not (isregsp $2) then error_registers ("expected " ^ $1.txt ^ " <Wn|WSP>, #<imm>{, <shift>}")
+ else if not (0 <= $4 && $4 <= 4095) then error_arg "<imm> must be in the range 0 to 4095"
+ else if not ($6.shift_type = ShiftType_LSL && ($7 = 0 || $7 = 12)) then error_arg "<shift> must be 'LSL #0' or 'LSL #12'"
+ else `AArch64AddSubImmediate (W ZR,$2,Set32,$1.sub_op,true,reg_size_bits_R32_of_int ($4 lsl $7)) }
+ | CM xreg COMMA imm
+ { if not (isregsp $2) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, #<imm>{, <shift>}")
+ else if not (0 <= $4 && $4 <= 4095) then error_arg "<imm> must be in the range 0 to 4095"
+ else `AArch64AddSubImmediate (X ZR,$2,Set64,$1.sub_op,true,reg_size_bits_R64_of_int $4) }
+ | CM xreg COMMA imm COMMA SHIFT imm
+ { if not (isregsp $2) then error_registers ("expected " ^ $1.txt ^ " <Xn|SP>, #<imm>{, <shift>}")
+ else if not (0 <= $4 && $4 <= 4095) then error_arg "<imm> must be in the range 0 to 4095"
+ else if not ($6.shift_type = ShiftType_LSL && ($7 = 0 || $7 = 12)) then error_arg "<shift> must be 'LSL #0' or 'LSL #12'"
+ else `AArch64AddSubImmediate (X ZR,$2,Set64,$1.sub_op,true,reg_size_bits_R64_of_int ($4 lsl $7)) }
+
+ /* CRC32B/CRC32H/CRC32W */
+ /* CRC32CB/CRC32CH/CRC32CW */
+
+ | CRC wreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>")
+ else `AArch64CRC($2,$4,$6,$1.size,$1.crc32c) }
+
+ /* CRC32X/CRC32CX */
+
+ | CRC32X wreg COMMA wreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Xm>")
+ else `AArch64CRC($2,$4,$6,DataSize64,$1.crc32c) }
+
+ /* CSEL/CSINV/CSINC/CSNEG */
+
+ | CSEL wreg COMMA wreg COMMA wreg COMMA COND
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>, <cond>")
+ else `AArch64ConditionalSelect($2,$4,$6,Set32,$8,$1.else_inv,$1.else_inc) }
+ | CSEL xreg COMMA xreg COMMA xreg COMMA COND
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>, <cond>")
+ else `AArch64ConditionalSelect($2,$4,$6,Set64,$8,$1.else_inv,$1.else_inc) }
+
+ /* CSET/CSETM alias of CSINC/CSINV */
+
+ | CSET wreg COMMA COND
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <cond>")
+ else if ($4 = 0b1110 || $4 = 0b1111) then error_arg "<cond> must not be AL or NV"
+ else
+ let invert = (lxor) 0b0001 in
+ `AArch64ConditionalSelect($2,W ZR,W ZR,Set32,invert $4,$1.else_inv,$1.else_inc) }
+ | CSET xreg COMMA COND
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <cond>")
+ else if ($4 = 0b1110 || $4 = 0b1111) then error_arg "<cond> must not be AL or NV"
+ else
+ let invert = (lxor) 0b0001 in
+ `AArch64ConditionalSelect($2,X ZR,X ZR,Set64,invert $4,$1.else_inv,$1.else_inc) }
+
+ /* DMB/DSB */
+
+ | MEMBARR BARROP
+ { `AArch64Barrier($1.op,$2.domain,$2.types) }
+ | MEMBARR imm
+ { if not (0 <= $2 && $2 <= 15) then error_arg "<imm> must be in the range 0 to 15"
+ else
+ let domain =
+ match $2 / 4 with
+ | 0b00 -> MBReqDomain_OuterShareable
+ | 0b01 -> MBReqDomain_Nonshareable
+ | 0b10 -> MBReqDomain_InnerShareable
+ | 0b11 -> MBReqDomain_FullSystem
+ | _ -> assert false
+ in
+ let (domain,types) =
+ match $2 mod 4 with
+ | 0b01 -> (domain,MBReqTypes_Reads)
+ | 0b10 -> (domain,MBReqTypes_Writes)
+ | 0b11 -> (domain,MBReqTypes_All)
+ | _ -> (MBReqDomain_FullSystem,MBReqTypes_All)
+ in
+ `AArch64Barrier($1.op,domain,types) }
+
+ /* EXTR */
+
+ | EXTR wreg COMMA wreg COMMA wreg COMMA imm
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>, #<lsb>")
+ else if not (0 <= $8 && $8 <= 31) then error_arg "<lsb> must be in the range 0 to 31"
+ else `AArch64ExtractRegister($2,$4,$6,Set32,$8) }
+ | EXTR xreg COMMA xreg COMMA xreg COMMA imm
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>, #<lsb>")
+ else if not (0 <= $8 && $8 <= 63) then error_arg "<lsb> must be in the range 0 to 63"
+ else `AArch64ExtractRegister($2,$4,$6,Set64,$8) }
+
+ /* HINT */
+
+ | HINT imm
+ { if not (0 <= $2 && $2 <= 127) then error_arg "<imm> must be in the range 0 to 127"
+ else
+ match $2 with
+ | 0 -> `AArch64Hint(SystemHintOp_NOP)
+ | 1 -> `AArch64Hint(SystemHintOp_YIELD)
+ | 2 -> `AArch64Hint(SystemHintOp_WFE)
+ | 3 -> `AArch64Hint(SystemHintOp_WFI)
+ | 4 -> `AArch64Hint(SystemHintOp_SEV)
+ | 5 -> `AArch64Hint(SystemHintOp_SEVL)
+ | _ -> `AArch64Hint(SystemHintOp_NOP) }
+
+ /* ISB */
+
+ | ISB
+ { `AArch64Barrier(MemBarrierOp_ISB,MBReqDomain_FullSystem,MBReqTypes_All) }
+ | ISB BARROP
+ { if not ($2 = {domain=MBReqDomain_FullSystem; types=MBReqTypes_All}) then error_arg "<option> must be SY"
+ else `AArch64Barrier(MemBarrierOp_ISB,MBReqDomain_FullSystem,MBReqTypes_All) }
+ | ISB imm
+ { (* FIXME: this seems like an ARM bug, why do we let this be anything other then 15 *)
+ if not (0 <= $2 && $2 <= 15) then error_arg "<imm> must be in the range 0 to 15"
+ else
+ let domain =
+ match $2 / 4 with
+ | 0b00 -> MBReqDomain_OuterShareable
+ | 0b01 -> MBReqDomain_Nonshareable
+ | 0b10 -> MBReqDomain_InnerShareable
+ | 0b11 -> MBReqDomain_FullSystem
+ | _ -> assert false
+ in
+ let (domain,types) =
+ match $2 mod 4 with
+ | 0b01 -> (domain,MBReqTypes_Reads)
+ | 0b10 -> (domain,MBReqTypes_Writes)
+ | 0b11 -> (domain,MBReqTypes_All)
+ | _ -> (MBReqDomain_FullSystem,MBReqTypes_All)
+ in
+ `AArch64Barrier(MemBarrierOp_ISB,domain,types) }
+
+ /* LDAR/LDARB/LDARH
+ LDAXR/LDAXRB/LDAXRH
+ LDXR/LDXRB/LDXRH
+ STLR/STLRB/STLRH */
+
+ | LDAXR wreg COMMA LBRK xreg RBRK
+ { if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($5,$2,W ZR (* ARM: 0b11111 *),W ZR (* ARM: 0b11111 *),$1.acctype,$1.excl,false,$1.memop,$1.var32.elsize,Set32,$1.var32.datasize) }
+ | LDAXR wreg COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregzr $2 && isregsp $5 && $7 = 0) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($5,$2,W ZR (* ARM: 0b11111 *),W ZR (* ARM: 0b11111 *),$1.acctype,$1.excl,false,$1.memop,$1.var32.elsize,Set32,$1.var32.datasize) }
+ | LDAXR xreg COMMA LBRK xreg RBRK
+ { if not $1.var64 then error_arg "unrecognised instruction"
+ else if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($5,$2,X ZR (* ARM: 0b11111 *),W ZR (* ARM: 0b11111 *),$1.acctype,$1.excl,false,$1.memop,64,Set64,DataSize64) }
+ | LDAXR xreg COMMA LBRK xreg COMMA imm RBRK
+ { if not $1.var64 then error_arg "unrecognised instruction"
+ else if not (isregzr $2 && isregsp $5 && $7 = 0) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($5,$2,X ZR (* ARM: 0b11111 *),W ZR (* ARM: 0b11111 *),$1.acctype,$1.excl,false,$1.memop,64,Set64,DataSize64) }
+
+ /* STXR/STXRB/STXRH */
+ /* STLXR/STLXRB/STLXRH */
+
+ | STLXR wreg COMMA wreg COMMA LBRK xreg RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Ws>, <Wt>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($7,$4,W ZR (* ARM: 0b11111 *),$2,$1.acctype,true,false,MemOp_STORE,$1.var32.elsize,Set32,$1.var32.datasize) }
+ | STLXR wreg COMMA wreg COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7 && $9 = 0) then error_registers ("expected " ^ $1.txt ^ " <Ws>, <Wt>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($7,$4,W ZR (* ARM: 0b11111 *),$2,$1.acctype,true,false,MemOp_STORE,$1.var32.elsize,Set32,$1.var32.datasize) }
+ | STLXR wreg COMMA xreg COMMA LBRK xreg RBRK
+ { if not $1.var64 then error_arg "unrecognised instruction"
+ else if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Ws>, <Xt>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($7,$4,X ZR (* ARM: 0b11111 *),$2,$1.acctype,true,false,MemOp_STORE,64,Set64,DataSize64) }
+ | STLXR wreg COMMA xreg COMMA LBRK xreg COMMA imm RBRK
+ { if not $1.var64 then error_arg "unrecognised instruction"
+ else if not (isregzr $2 && isregzr $4 && isregsp $7 && $9 = 0) then error_registers ("expected " ^ $1.txt ^ " <Ws>, <Xt>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($7,$4,X ZR (* ARM: 0b11111 *),$2,$1.acctype,true,false,MemOp_STORE,64,Set64,DataSize64) }
+
+ /* LDAXP/LDXP */
+
+ | LDXP wreg COMMA wreg COMMA LBRK xreg RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Wt1>, <Wt2>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($7,$2,$4,W ZR (* ARM: 0b11111 *),$1.acctype,true,true,MemOp_LOAD,32,Set32,DataSize32) }
+ | LDXP wreg COMMA wreg COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7 && $9 = 0) then error_registers ("expected " ^ $1.txt ^ " <Wt1>, <Wt2>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($7,$2,$4,W ZR (* ARM: 0b11111 *),$1.acctype,true,true,MemOp_LOAD,32,Set32,DataSize32) }
+ | LDXP xreg COMMA xreg COMMA LBRK xreg RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Xt1>, <Xt2>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($7,$2,$4,W ZR (* ARM: 0b11111 *),$1.acctype,true,true,MemOp_LOAD,64,Set64,DataSize64) }
+ | LDXP xreg COMMA xreg COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7 && $9 = 0) then error_registers ("expected " ^ $1.txt ^ " <Xt1>, <Xt2>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($7,$2,$4,W ZR (* ARM: 0b11111 *),$1.acctype,true,true,MemOp_LOAD,64,Set64,DataSize64) }
+
+ /* STLXP/STXP */
+
+ | STXP wreg COMMA wreg COMMA wreg COMMA LBRK xreg RBRK
+ { if not (isregzr $2 && isregzr $4 && isregzr $6 && isregsp $9) then error_registers ("expected " ^ $1.txt ^ " <Ws>, <Wt1>, <Wt2>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($9,$4,$6,$2,$1.acctype,true,true,MemOp_STORE,32,Set32,DataSize32) }
+ | STXP wreg COMMA wreg COMMA wreg COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregzr $2 && isregzr $4 && isregzr $6 && isregsp $9 && $11 = 0) then error_registers ("expected " ^ $1.txt ^ " <Ws>, <Wt1>, <Wt2>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($9,$4,$6,$2,$1.acctype,true,true,MemOp_STORE,32,Set32,DataSize32) }
+ | STXP wreg COMMA xreg COMMA xreg COMMA LBRK xreg RBRK
+ { if not (isregzr $2 && isregzr $4 && isregzr $6 && isregsp $9) then error_registers ("expected " ^ $1.txt ^ " <Ws>, <Xt1>, <Xt2>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($9,$4,$6,$2,$1.acctype,true,true,MemOp_STORE,64,Set64,DataSize64) }
+ | STXP wreg COMMA xreg COMMA xreg COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregzr $2 && isregzr $4 && isregzr $6 && isregsp $9 && $11 = 0) then error_registers ("expected " ^ $1.txt ^ " <Ws>, <Xt1>, <Xt2>, [<Xn|SP>{,#0}]")
+ else `AArch64LoadStoreAcqExc($9,$4,$6,$2,$1.acctype,true,true,MemOp_STORE,64,Set64,DataSize64) }
+
+ /* LDP/STP (post-index) */
+
+ | LDSTP wreg COMMA wreg COMMA LBRK xreg RBRK COMMA imm
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Wt1>, <Wt2>, [<Xn|SP>], #<imm>")
+ else if not (-256 <= $10 && $10 <= 252) then error_arg "<imm> must be in the range -256 to 252"
+ else if not ($10 mod 4 = 0) then error_arg "<imm> must be a multiple of 4"
+ else `AArch64LoadStorePair (true,true,$7,$2,$4,AccType_NORMAL,$1.memop,false,DataSize32,bit64_of_int $10) }
+ | LDSTP xreg COMMA xreg COMMA LBRK xreg RBRK COMMA imm
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Xt1>, <Xt2>, [<Xn|SP>], #<imm>")
+ else if not (-512 <= $10 && $10 <= 504) then error_arg "<imm> must be in the range -512 to 504"
+ else if not ($10 mod 8 = 0) then error_arg "<imm> must be a multiple of 8"
+ else `AArch64LoadStorePair (true,true,$7,$2,$4,AccType_NORMAL,$1.memop,false,DataSize64,bit64_of_int $10) }
+
+ /* LDP/STP (pre-index) */
+
+ | LDSTP wreg COMMA wreg COMMA LBRK xreg COMMA imm RBRK EXCL
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Wt1>, <Wt2>, [<Xn|SP>, #<imm>]!")
+ else if not (-256 <= $9 && $9 <= 252) then error_arg "<imm> must be in the range -256 to 252"
+ else if not ($9 mod 4 = 0) then error_arg "<imm> must be a multiple of 4"
+ else `AArch64LoadStorePair (true,false,$7,$2,$4,AccType_NORMAL,$1.memop,false,DataSize32,bit64_of_int $9) }
+ | LDSTP xreg COMMA xreg COMMA LBRK xreg COMMA imm RBRK EXCL
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Xt1>, <Xt2>, [<Xn|SP>, #<imm>]!")
+ else if not (-512 <= $9 && $9 <= 504) then error_arg "<imm> must be in the range -512 to 504"
+ else if not ($9 mod 8 = 0) then error_arg "<imm> must be a multiple of 8"
+ else `AArch64LoadStorePair (true,false,$7,$2,$4,AccType_NORMAL,$1.memop,false,DataSize64,bit64_of_int $9) }
+
+ /* LDP/STP (signed offset) */
+
+ | LDSTP wreg COMMA wreg COMMA LBRK xreg RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Wt1>, <Wt2>, [<Xn|SP>{, #<imm>}]")
+ else `AArch64LoadStorePair (false,false,$7,$2,$4,AccType_NORMAL,$1.memop,false,DataSize32,bit64_of_int 0) }
+ | LDSTP wreg COMMA wreg COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Wt1>, <Wt2>, [<Xn|SP>{, #<imm>}]")
+ else if not (-256 <= $9 && $9 <= 252) then error_arg "<imm> must be in the range -256 to 252"
+ else if not ($9 mod 4 = 0) then error_arg "<imm> must be a multiple of 4"
+ else `AArch64LoadStorePair (false,false,$7,$2,$4,AccType_NORMAL,$1.memop,false,DataSize32,bit64_of_int $9) }
+ | LDSTP xreg COMMA xreg COMMA LBRK xreg RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Xt1>, <Xt2>, [<Xn|SP>{, #<imm>}]")
+ else `AArch64LoadStorePair (false,false,$7,$2,$4,AccType_NORMAL,$1.memop,false,DataSize64,bit64_of_int 0) }
+ | LDSTP xreg COMMA xreg COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Xt1>, <Xt2>, [<Xn|SP>{, #<imm>}]")
+ else if not (-512 <= $9 && $9 <= 504) then error_arg "<imm> must be in the range -512 to 504"
+ else if not ($9 mod 8 = 0) then error_arg "<imm> must be a multiple of 8"
+ else `AArch64LoadStorePair (false,false,$7,$2,$4,AccType_NORMAL,$1.memop,false,DataSize64,bit64_of_int $9) }
+
+ /* LDPSW (post-index) */
+
+ | LDPSW xreg COMMA xreg COMMA LBRK xreg RBRK COMMA imm
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Xt1>, <Xt2>, [<Xn|SP>], #<imm>")
+ else if not (-256 <= $10 && $10 <= 252) then error_arg "<imm> must be in the range -256 to 252"
+ else if not ($10 mod 4 = 0) then error_arg "<imm> must be a multiple of 4"
+ else `AArch64LoadStorePair (true,true,$7,$2,$4,AccType_NORMAL,MemOp_LOAD,true,DataSize32,bit64_of_int $10) }
+
+ /* LDPSW (pre-index) */
+
+ | LDPSW xreg COMMA xreg COMMA LBRK xreg COMMA imm RBRK EXCL
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Xt1>, <Xt2>, [<Xn|SP>, #<imm>]!")
+ else if not (-256 <= $9 && $9 <= 252) then error_arg "<imm> must be in the range -256 to 252"
+ else if not ($9 mod 4 = 0) then error_arg "<imm> must be a multiple of 4"
+ else `AArch64LoadStorePair (true,false,$7,$2,$4,AccType_NORMAL,MemOp_LOAD,true,DataSize32,bit64_of_int $9) }
+
+ /* LDPSW (signed offset) */
+
+ | LDPSW xreg COMMA xreg COMMA LBRK xreg RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Xt1>, <Xt2>, [<Xn|SP>{, #<imm>}]")
+ else `AArch64LoadStorePair (false,false,$7,$2,$4,AccType_NORMAL,MemOp_LOAD,true,DataSize32,bit64_of_int 0) }
+ | LDPSW xreg COMMA xreg COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregzr $2 && isregzr $4 && isregsp $7) then error_registers ("expected " ^ $1.txt ^ " <Xt1>, <Xt2>, [<Xn|SP>{, #<imm>}]")
+ else if not (-256 <= $9 && $9 <= 252) then error_arg "<imm> must be in the range -256 to 252"
+ else if not ($9 mod 4 = 0) then error_arg "<imm> must be a multiple of 4"
+ else `AArch64LoadStorePair (false,false,$7,$2,$4,AccType_NORMAL,MemOp_LOAD,true,DataSize32,bit64_of_int $9) }
+
+ /* LDR/LDRB/LDRH/LDRSB/LDRSH/LDRSW/STR/STRB/STRH (immediate) (post-index) */
+
+ | LDSTR wreg COMMA LBRK xreg RBRK COMMA imm
+ { match $1.var32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>], #<simm>")
+ | Some var32 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>]")
+ else if not (-256 <= $8 && $8 <= 255) then error_arg "<simm> must be in the range -256 to 255"
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,$1.memop,$1.signed,true,true,bit64_of_int $8,Set32,var32.datasize) }
+ | LDSTR xreg COMMA LBRK xreg RBRK COMMA imm
+ { match $1.var64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>], #<simm>")
+ | Some var64 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>]")
+ else if not (-256 <= $8 && $8 <= 255) then error_arg "<simm> must be in the range -256 to 255"
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,$1.memop,$1.signed,true,true,bit64_of_int $8,Set64,var64.datasize) }
+
+ /* LDR/LDRB/LDRH/LDRSB/LDRSH/LDRSW/STR/STRB/STRH (immediate) (pre-index) */
+
+ | LDSTR wreg COMMA LBRK xreg COMMA imm RBRK EXCL
+ { match $1.var32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, #<simm>]!")
+ | Some var32 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, #<simm>]!")
+ else if not (-256 <= $7 && $7 <= 255) then error_arg "<simm> must be in the range -256 to 255"
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,$1.memop,$1.signed,true,false,bit64_of_int $7,Set32,var32.datasize) }
+ | LDSTR xreg COMMA LBRK xreg COMMA imm RBRK EXCL
+ { match $1.var64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, #<simm>]!")
+ | Some var64 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, #<simm>]!")
+ else if not (-256 <= $7 && $7 <= 255) then error_arg "<simm> must be in the range -256 to 255"
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,$1.memop,$1.signed,true,false,bit64_of_int $7,Set64,var64.datasize) }
+
+ /* LDR/LDRB/LDRH/LDRSB/LDRSH/LDRSW/STR/STRB/STRH (immediate) (unsigned offset) */
+
+ | LDSTR wreg COMMA LBRK xreg RBRK
+ { match $1.var32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>{, #<pimm>}]")
+ | Some var32 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>{, #<pimm>}]")
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,$1.memop,$1.signed,false,false,bit64_of_int 0,Set32,var32.datasize) }
+ | LDSTR wreg COMMA LBRK xreg COMMA imm RBRK
+ { match $1.var32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>{, #<pimm>}]")
+ | Some var32 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>{, #<pimm>}]")
+ else if var32.datasize = DataSize8 && not (0 <= $7 && $7 <= 4095) then error_arg "<pimm> must be in the range 0 to 4095"
+ else if var32.datasize = DataSize16 && not (0 <= $7 && $7 <= 8190) then error_arg "<pimm> must be in the range 0 to 8190"
+ else if var32.datasize = DataSize16 && not ($7 mod 2 = 0) then error_arg "<pimm> must be a multiple of 2"
+ else if var32.datasize = DataSize32 && not (0 <= $7 && $7 <= 16380) then error_arg "<pimm> must be in the range 0 to 16380"
+ else if var32.datasize = DataSize32 && not ($7 mod 4 = 0) then error_arg "<pimm> must be a multiple of 4"
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,$1.memop,$1.signed,false,false,bit64_of_int $7,Set32,var32.datasize) }
+ | LDSTR xreg COMMA LBRK xreg RBRK
+ { match $1.var64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>{, #<pimm>}]")
+ | Some var64 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>{, #<pimm>}]")
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,$1.memop,$1.signed,false,false,bit64_of_int 0,Set64,var64.datasize) }
+ | LDSTR xreg COMMA LBRK xreg COMMA imm RBRK
+ { match $1.var64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>{, #<pimm>}]")
+ | Some var64 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>{, #<pimm>}]")
+ else if var64.datasize = DataSize8 && not (0 <= $7 && $7 <= 4095) then error_arg "<pimm> must be in the range 0 to 4095"
+ else if var64.datasize = DataSize16 && not (0 <= $7 && $7 <= 8190) then error_arg "<pimm> must be in the range 0 to 8190"
+ else if var64.datasize = DataSize16 && not ($7 mod 2 = 0) then error_arg "<pimm> must be a multiple of 2"
+ else if var64.datasize = DataSize32 && not (0 <= $7 && $7 <= 16380) then error_arg "<pimm> must be in the range 0 to 16380"
+ else if var64.datasize = DataSize32 && not ($7 mod 4 = 0) then error_arg "<pimm> must be a multiple of 4"
+ else if var64.datasize = DataSize64 && not (0 <= $7 && $7 <= 32760) then error_arg "<pimm> must be in the range 0 to 32760"
+ else if var64.datasize = DataSize64 && not ($7 mod 8 = 0) then error_arg "<pimm> must be a multiple of 8"
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,$1.memop,$1.signed,false,false,bit64_of_int $7,Set64,var64.datasize) }
+
+ /* LDR/LDRSW (literal) */
+/*
+ | LDSTR wreg COMMA NAME
+ { if not $1.lit32 then error_arg "unrecognised instruction"
+ else if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Wt>, <label>")
+ else `AArch64LoadLiteral($2,MemOp_LOAD,$1.signed,4,(* FIXME: label *),DataSize32) }
+ | LDSTR xreg COMMA NAME
+ { match $1.lit64 with
+ | None -> error_arg "unrecognised instruction"
+ | Some lit64 ->
+ if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xt>, <label>")
+ else `AArch64LoadLiteral($2,MemOp_LOAD,$1.signed,lit64.size,(* FIXME: label *),lit64.datasize) }
+*/
+
+ /* LDR/LDRB/LDRH/LDRSB/LDRSH/LDRSW/STR/STRB/STRH (register) */ /* FIXME: the combination of extend and amount is not clear in ARM */
+
+ | LDSTR wreg COMMA LBRK xreg COMMA wreg COMMA EXTEND RBRK
+ { match $1.var32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ | Some var32 ->
+ if not (isregzr $2 && isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9._type = ExtendType_UXTW || $9._type = ExtendType_SXTW) then error_arg "<extend> must be one of UXTW,SXTW"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,$1.memop,$1.signed,false,false,$9._type,0,Set32,var32.datasize) }
+ | LDSTR wreg COMMA LBRK xreg COMMA xreg RBRK
+ { match $1.var32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ | Some var32 ->
+ if not (isregzr $2 && isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, <R><m>]")
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,$1.memop,$1.signed,false,false,ExtendType_UXTX,0,Set32,var32.datasize) }
+ | LDSTR wreg COMMA LBRK xreg COMMA xreg COMMA EXTEND RBRK
+ { match $1.var32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ | Some var32 ->
+ if not (isregzr $2 && isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9._type = ExtendType_SXTX) then error_arg "<extend> must be one of LSL,SXTX"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,$1.memop,$1.signed,false,false,$9._type,0,Set32,var32.datasize) }
+ | LDSTR wreg COMMA LBRK xreg COMMA xreg COMMA SHIFT RBRK
+ { match $1.var32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ | Some var32 ->
+ if not (isregzr $2 && isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of LSL,SXTX"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,$1.memop,$1.signed,false,false,ExtendType_UXTX,0,Set32,var32.datasize) }
+ | LDSTR wreg COMMA LBRK xreg COMMA xreg COMMA SHIFT imm RBRK
+ { match $1.var32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ | Some var32 ->
+ if not (isregzr $2 && isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of LSL,SXTX"
+ else if var32.datasize = DataSize8 && not ($10 = 0) then error_arg "<amount> must be 0"
+ else if var32.datasize = DataSize16 && not ($10 = 0 || $10 = 1) then error_arg "<amount> must be one of 0,1"
+ else if var32.datasize = DataSize32 && not ($10 = 0 || $10 = 2) then error_arg "<amount> must be one of 0,2"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,$1.memop,$1.signed,false,false,ExtendType_UXTX,$10,Set32,var32.datasize) }
+
+ | LDSTR xreg COMMA LBRK xreg COMMA wreg COMMA EXTEND RBRK
+ { match $1.var64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ | Some var64 ->
+ if not (isregzr $2 && isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9._type = ExtendType_UXTW || $9._type = ExtendType_SXTW) then error_arg "<extend> must be one of UXTW,SXTW"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,$1.memop,$1.signed,false,false,$9._type,0,Set64,var64.datasize) }
+ | LDSTR xreg COMMA LBRK xreg COMMA xreg RBRK
+ { match $1.var64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, <R><m>]")
+ | Some var64 ->
+ if not (isregzr $2 && isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, <R><m>]")
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,$1.memop,$1.signed,false,false,ExtendType_UXTX,0,Set64,var64.datasize) }
+ | LDSTR xreg COMMA LBRK xreg COMMA xreg COMMA EXTEND RBRK
+ { match $1.var64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ | Some var64 ->
+ if not (isregzr $2 && isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9._type = ExtendType_SXTX) then error_arg "<extend> must be one of LSL,SXTX"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,$1.memop,$1.signed,false,false,$9._type,0,Set64,var64.datasize) }
+ | LDSTR xreg COMMA LBRK xreg COMMA xreg COMMA SHIFT RBRK
+ { match $1.var64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ | Some var64 ->
+ if not (isregzr $2 && isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of LSL,SXTX"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,$1.memop,$1.signed,false,false,ExtendType_UXTX,0,Set64,var64.datasize) }
+ | LDSTR xreg COMMA LBRK xreg COMMA xreg COMMA SHIFT imm RBRK
+ { match $1.var64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ | Some var64 ->
+ if not (isregzr $2 && isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of LSL,SXTX"
+ else if var64.datasize = DataSize8 && not ($10 = 0) then error_arg "<amount> must be 0"
+ else if var64.datasize = DataSize16 && not ($10 = 0 || $10 = 1) then error_arg "<amount> must be one of 0,1"
+ else if var64.datasize = DataSize32 && not ($10 = 0 || $10 = 2) then error_arg "<amount> must be one of 0,2"
+ else if var64.datasize = DataSize64 && not ($10 = 0 || $10 = 3) then error_arg "<amount> must be one of 0,3"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,$1.memop,$1.signed,false,false,ExtendType_UXTX,$10,Set64,var64.datasize) }
+
+ /* LDTR/LDTRB/LDTRH/LDTRSB/LDTRSH/LDTRSW
+ LDUR/LDURB/LDURH/LDURSB/LDURSH/LDURSW
+ STTR/STTRB/STTRH
+ STUR/STURB/STURH */
+
+ | LDSTTUR wreg COMMA LBRK xreg RBRK
+ { match $1.off32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>{, #<simm>}]")
+ | Some off32 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>{, #<simm>}]")
+ else `AArch64LoadImmediate($5,$2,$1.acctype,$1.memop,$1.signed,false,false,bit64_of_int 0,Set32,off32.datasize) }
+ | LDSTTUR wreg COMMA LBRK xreg COMMA imm RBRK
+ { match $1.off32 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>{, #<simm>}]")
+ | Some off32 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>{, #<simm>}]")
+ else if not (-256 <= $7 && $7 <= 255) then error_arg "<simm> must be in the range -256 to 255"
+ else `AArch64LoadImmediate($5,$2,$1.acctype,$1.memop,$1.signed,false,false,bit64_of_int $7,Set32,off32.datasize) }
+ | LDSTTUR xreg COMMA LBRK xreg RBRK
+ { match $1.off64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>{, #<simm>}]")
+ | Some off64 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>{, #<simm>}]")
+ else `AArch64LoadImmediate($5,$2,$1.acctype,$1.memop,$1.signed,false,false,bit64_of_int 0,Set64,off64.datasize) }
+ | LDSTTUR xreg COMMA LBRK xreg COMMA imm RBRK
+ { match $1.off64 with
+ | None -> error_registers ("expected " ^ $1.txt ^ " <Wt>, [<Xn|SP>{, #<simm>}]")
+ | Some off64 ->
+ if not (isregzr $2 && isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <Xt>, [<Xn|SP>{, #<simm>}]")
+ else if not (-256 <= $7 && $7 <= 255) then error_arg "<simm> must be in the range -256 to 255"
+ else `AArch64LoadImmediate($5,$2,$1.acctype,$1.memop,$1.signed,false,false,bit64_of_int $7,Set64,off64.datasize) }
+
+ /* MADD/MSUB */
+
+ | MADDSUB wreg COMMA wreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6 && isregzr $8) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>, <Wa>")
+ else `AArch64MultiplyAddSub($2,$4,$6,$8,Set32,DataSize32,$1.sub_op) }
+ | MADDSUB xreg COMMA xreg COMMA xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6 && isregzr $8) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>, <Xa>")
+ else `AArch64MultiplyAddSub($2,$4,$6,$8,Set64,DataSize64,$1.sub_op) }
+
+ /* MUL/MNEG alias of MADD/MSUB */
+
+ | MUL wreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>")
+ else `AArch64MultiplyAddSub($2,$4,$6,W ZR,Set32,DataSize32,$1.sub_op) }
+ | MUL xreg COMMA xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>")
+ else `AArch64MultiplyAddSub($2,$4,$6,X ZR,Set64,DataSize64,$1.sub_op) }
+
+ /* MOV (to/from SP) alias of ADD (immediate) */
+ /* MOV (register) alias of ORR (shifted register) */
+ /* There is an ambiguity about the above two in the ARM manual.
+ Merging the two into one, where the "to/from SP" variant has priority. */
+
+ | MOV wreg COMMA wreg
+ { if (isregsp $2 && isregsp $4)
+ then `AArch64AddSubImmediate($2,$4,Set32,false,false,reg_size_bits_R32_of_int 0)
+ else if (isregzr $2 && isregzr $4)
+ then `AArch64LogicalShiftedRegister($2,W ZR,$4,Set32,false,LogicalOp_ORR,ShiftType_LSL,0,false)
+ else
+ error_registers ("expected " ^ $1.txt ^ " <Wd|WSP>, <Wn|WSP>") }
+
+ | MOV xreg COMMA xreg
+ { if (isregsp $2 && isregsp $4)
+ then `AArch64AddSubImmediate($2,$4,Set64,false,false,reg_size_bits_R64_of_int 0)
+ else if (isregzr $2 && isregzr $4)
+ then `AArch64LogicalShiftedRegister($2,X ZR,$4,Set64,false,LogicalOp_ORR,ShiftType_LSL,0,false)
+ else
+ error_registers ("expected " ^ $1.txt ^ " <Xd|SP>, <Xn|SP>") }
+
+ /* MOV (... immediate) alias of MOVZ/MOVN/ORR */
+
+ | MOV wreg COMMA imm
+ { if issp $2 then
+ begin
+ (* bitmask immediate *)
+ match encodeBitMasks 32 (Nat_big_num.of_int $4) with
+ | Some _ -> `AArch64LogicalImmediate($2,W ZR,Set32,false,LogicalOp_ORR,reg_size_bits_R32_of_int $4)
+ | None -> error_arg "<imm> can not be encoded"
+ end
+ else if not (iskbituimm 32 $4) then error_arg "<imm> must be a 32-bit unsigned immediate"
+ else if $4 land 0xffff0000 = 0 then
+ (* wide immediate *)
+ `AArch64MoveWide($2,Set32,$4,0,MoveWideOp_Z)
+ else if $4 land 0x0000ffff = 0 then
+ (* wide immediate *)
+ `AArch64MoveWide($2,Set32,$4 lsr 16,16,MoveWideOp_Z)
+ else if (lnot $4) land 0xffff0000 = 0 then
+ (* inverted wide immediate *)
+ `AArch64MoveWide($2,Set32,lnot $4,0,MoveWideOp_N)
+ else if (lnot $4) land 0x0000ffff = 0 then
+ (* inverted wide immediate *)
+ `AArch64MoveWide($2,Set32,(lnot $4) lsr 16,16,MoveWideOp_N)
+ else
+ (* bitmask immediate *)
+ match encodeBitMasks 32 (Nat_big_num.of_int $4) with
+ | Some _ -> `AArch64LogicalImmediate($2,W ZR,Set32,false,LogicalOp_ORR,reg_size_bits_R32_of_int $4)
+ | None -> error_arg "<imm> can not be encoded" }
+ | MOV xreg COMMA big_imm
+ { if issp $2 then
+ begin
+ (* bitmask immediate *)
+ match encodeBitMasks 64 $4 with
+ | Some _ -> `AArch64LogicalImmediate($2,X ZR,Set64,false,LogicalOp_ORR,reg_size_bits_R64_of_big_int $4)
+ | None -> error_arg "<imm> can not be encoded"
+ end
+ else if not (big_iskbituimm 64 $4) then error_arg "<imm> must be a 64-bit unsigned immediate"
+ else if check_bits $4 0 16 then
+ (* wide immediate *)
+ `AArch64MoveWide($2,Set64,Nat_big_num.to_int $4,0,MoveWideOp_Z)
+ else if check_bits $4 16 16 then
+ (* wide immediate *)
+ `AArch64MoveWide($2,Set64,Nat_big_num.to_int (Nat_big_num.extract_num $4 16 16),16,MoveWideOp_Z)
+ else if check_bits $4 32 16 then
+ (* wide immediate *)
+ `AArch64MoveWide($2,Set64,Nat_big_num.to_int (Nat_big_num.extract_num $4 32 16),32,MoveWideOp_Z)
+ else if check_bits $4 48 16 then
+ (* wide immediate *)
+ `AArch64MoveWide($2,Set64,Nat_big_num.to_int (Nat_big_num.extract_num $4 48 16),48,MoveWideOp_Z)
+ else
+ begin
+ let not_imm = (* the following should negate the first 64 bits of $4
+ by doing 0xffffffffffffffff - $4 *)
+ Nat_big_num.sub
+ (Nat_big_num.pred (Nat_big_num.shift_left (Nat_big_num.of_int 1) 64))
+ $4 in
+ if check_bits not_imm 0 16 then
+ (* inverted wide immediate *)
+ `AArch64MoveWide($2,Set64,Nat_big_num.to_int not_imm,0,MoveWideOp_N)
+ else if check_bits not_imm 16 16 then
+ (* inverted wide immediate *)
+ `AArch64MoveWide($2,Set64,Nat_big_num.to_int (Nat_big_num.extract_num not_imm 16 16),16,MoveWideOp_N)
+ else if check_bits not_imm 32 16 then
+ (* inverted wide immediate *)
+ `AArch64MoveWide($2,Set64,Nat_big_num.to_int (Nat_big_num.extract_num not_imm 32 16),32,MoveWideOp_N)
+ else if check_bits not_imm 48 16 then
+ (* inverted wide immediate *)
+ `AArch64MoveWide($2,Set64,Nat_big_num.to_int (Nat_big_num.extract_num not_imm 48 16),48,MoveWideOp_N)
+ else
+ (* bitmask immediate *)
+ match encodeBitMasks 64 $4 with
+ | Some _ -> `AArch64LogicalImmediate($2,X ZR,Set64,false,LogicalOp_ORR,reg_size_bits_R64_of_big_int $4)
+ | None -> error_arg "<imm> can not be encoded"
+ end}
+
+ /* MOVK/MOVN/MOVZ */
+
+ | MOVWIDE wreg COMMA imm
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Wd>, #<imm>{, LSL #<shift>}")
+ else if not (0 <= $4 && $4 <= 65535) then error_arg "<imm> must be in the range 0 to 65535"
+ else `AArch64MoveWide($2,Set32,$4,0,$1.opcode) }
+ | MOVWIDE wreg COMMA imm COMMA SHIFT imm
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Wd>, #<imm>{, LSL #<shift>}")
+ else if not (0 <= $4 && $4 <= 65535) then error_arg "<imm> must be in the range 0 to 65535"
+ else if not ($6.shift_type = ShiftType_LSL) then error_arg "must be LSL"
+ else if not ($7 = 0 || $7 = 16) then error_arg "<shift> must be one of 0,16"
+ else `AArch64MoveWide($2,Set32,$4,$7,$1.opcode) }
+ | MOVWIDE xreg COMMA imm
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xd>, #<imm>{, LSL #<shift>}")
+ else if not (0 <= $4 && $4 <= 65535) then error_arg "<imm> must be in the range 0 to 65535"
+ else `AArch64MoveWide($2,Set64,$4,0,$1.opcode) }
+ | MOVWIDE xreg COMMA imm COMMA SHIFT imm
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xd>, #<imm>{, LSL #<shift>}")
+ else if not (0 <= $4 && $4 <= 65535) then error_arg "<imm> must be in the range 0 to 65535"
+ else if not ($6.shift_type = ShiftType_LSL) then error_arg "must be LSL"
+ else if not ($7 = 0 || $7 = 16 || $7 = 32 || $7 = 48) then error_arg "<shift> must be one of 0,16,32,48"
+ else `AArch64MoveWide($2,Set64,$4,$7,$1.opcode) }
+
+ /* MVN alias of ORN (shifted register) */
+
+ | MVN wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wm>{, <shift> #<amount>}")
+ else `AArch64LogicalShiftedRegister($2,W ZR,$4,Set32,false,LogicalOp_ORR,ShiftType_LSL,0,true) }
+ | MVN wreg COMMA wreg COMMA SHIFT imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wm>{, <shift> #<amount>}")
+ else if not (0 <= $7 && $7 <= 31) then error_arg "<amount> must be in the range 0 to 31"
+ else `AArch64LogicalShiftedRegister($2,W ZR,$4,Set32,false,LogicalOp_ORR,$6.shift_type,$7,true) }
+ | MVN xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xm>{, <shift> #<amount>}")
+ else `AArch64LogicalShiftedRegister($2,X ZR,$4,Set64,false,LogicalOp_ORR,ShiftType_LSL,0,true) }
+ | MVN xreg COMMA xreg COMMA SHIFT imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xm>{, <shift> #<amount>}")
+ else if not (0 <= $7 && $7 <= 63) then error_arg "<amount> must be in the range 0 to 63"
+ else `AArch64LogicalShiftedRegister($2,X ZR,$4,Set64,false,LogicalOp_ORR,$6.shift_type,$7,true) }
+
+ /* NEG/NEGS (shifted register) alias of SUB/SUBS (shifted register) */
+
+ | NEG wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wm>{, <shift> #<amount>}")
+ else `AArch64AddSubShiftedRegister($2,W ZR,$4,Set32,true,$1.setflags,ShiftType_LSL,0) }
+ | NEG wreg COMMA wreg COMMA SHIFT imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wm>{, <shift> #<amount>}")
+ else if $6.shift_type = ShiftType_ROR then error_arg "<shift> must be one of LSL,LSR,ASR"
+ else if not (0 <= $7 && $7 <= 31) then error_arg "<amount> must be in the range 0 to 31"
+ else `AArch64AddSubShiftedRegister($2,W ZR,$4,Set32,true,$1.setflags,$6.shift_type,0) }
+ | NEG xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xm>{, <shift> #<amount>}")
+ else `AArch64AddSubShiftedRegister($2,X ZR,$4,Set64,true,$1.setflags,ShiftType_LSL,0) }
+ | NEG xreg COMMA xreg COMMA SHIFT imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xm>{, <shift> #<amount>}")
+ else if $6.shift_type = ShiftType_ROR then error_arg "<shift> must be one of LSL,LSR,ASR"
+ else if not (0 <= $7 && $7 <= 63) then error_arg "<amount> must be in the range 0 to 63"
+ else `AArch64AddSubShiftedRegister($2,X ZR,$4,Set64,true,$1.setflags,$6.shift_type,$7) }
+
+ /* NGC/NGCS alias of SBC/SBCS */
+
+ | NGC wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wm>")
+ else `AArch64AddSubCarry ($2,W ZR,$4,Set32,true,$1.setflags) }
+ | NGC xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xm>")
+ else `AArch64AddSubCarry ($2,X ZR,$4,Set64,true,$1.setflags) }
+
+ /* NOP alias of HINT */
+
+ | NOP
+ { `AArch64Hint(SystemHintOp_NOP) }
+
+ /* PRFM (immediate) */
+
+ | PRFM PRFOP COMMA LBRK xreg RBRK
+ { if not (isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>{, #<pimm>}]")
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,MemOp_PREFETCH,false,false,false,bit64_of_int 0,Set64,DataSize64) }
+ | PRFM PRFOP COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>{, #<pimm>}]")
+ else if not (0 <= $7 && $7 <= 32760) then error_arg "<pimm> must be in the range 0 to 32760"
+ else if not ($7 mod 8 = 0) then error_arg "<pimm> must be a multiple of 8"
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,MemOp_PREFETCH,false,false,false,bit64_of_int $7,Set64,DataSize64) }
+ | PRFM imm COMMA LBRK xreg RBRK
+ { if not (isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>{, #<pimm>}]")
+ else if not ($2 = 6 || $2 = 7 || $2 = 14 || $2 = 15 || (22 <= $2 && $2 <= 31)) then error_arg "<prfop> must be one of 6,7,14,15,22-31"
+ else `AArch64LoadImmediate($5,X (Ireg (ireg_of_int $2)),AccType_NORMAL,MemOp_PREFETCH,false,false,false,bit64_of_int 0,Set64,DataSize64) }
+ | PRFM imm COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>{, #<pimm>}]")
+ else if not ($2 = 6 || $2 = 7 || $2 = 14 || $2 = 15 || (22 <= $2 && $2 <= 31)) then error_arg "<prfop> must be one of 6,7,14,15,22-31"
+ else if not (0 <= $7 && $7 <= 32760) then error_arg "<pimm> must be in the range 0 to 32760"
+ else if not ($7 mod 8 = 0) then error_arg "<pimm> must be a multiple of 8"
+ else `AArch64LoadImmediate($5,X (Ireg (ireg_of_int $2)),AccType_NORMAL,MemOp_PREFETCH,false,false,false,bit64_of_int $7,Set64,DataSize64) }
+
+ /* PRFM (literal) */
+/*
+ | PRFM PRFOP COMMA NAME
+ { `AArch64LoadLiteral($2,MemOp_PREFETCH,false,0,(* FIXME: label *),DataSize32) }
+ | PRFM imm COMMA NAME
+ { if not ($2 = 6 || $2 = 7 || $2 = 14 || $2 = 15 || (22 <= $2 && $2 <= 31)) then error_arg "<prfop> must be one of 6,7,14,15,22-31"
+ else `AArch64LoadLiteral(X (Ireg (ireg_of_int $2)),MemOp_PREFETCH,false,0,(* FIXME: label *),DataSize32) }
+*/
+
+ /* PRFM (register) */
+
+ | PRFM PRFOP COMMA LBRK xreg COMMA wreg COMMA EXTEND RBRK
+ { if not (isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9._type = ExtendType_UXTW || $9._type = ExtendType_SXTW) then error_arg "<extend> must be one of UXTW,SXTW"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,MemOp_PREFETCH,false,false,false,$9._type,0,Set32,DataSize64) }
+ | PRFM PRFOP COMMA LBRK xreg COMMA xreg RBRK
+ { if not (isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,MemOp_PREFETCH,false,false,false,ExtendType_UXTX,0,Set32,DataSize64) }
+ | PRFM PRFOP COMMA LBRK xreg COMMA xreg COMMA EXTEND RBRK
+ { if not (isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9._type = ExtendType_SXTX) then error_arg "<extend> must be one of LSL,SXTX"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,MemOp_PREFETCH,false,false,false,$9._type,0,Set32,DataSize64) }
+ | PRFM PRFOP COMMA LBRK xreg COMMA xreg COMMA SHIFT RBRK
+ { if not (isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of LSL,SXTX"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,MemOp_PREFETCH,false,false,false,ExtendType_UXTX,0,Set32,DataSize64) }
+ | PRFM PRFOP COMMA LBRK xreg COMMA xreg COMMA SHIFT imm RBRK
+ { if not (isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($9.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of LSL,SXTX"
+ else if not ($10 = 0 || $10 = 3) then error_arg "<amount> must be one of 0,3"
+ else `AArch64LoadRegister($5,$2,$7,AccType_NORMAL,MemOp_PREFETCH,false,false,false,ExtendType_UXTX,$10,Set32,DataSize64) }
+
+ | PRFM imm COMMA LBRK xreg COMMA wreg COMMA EXTEND RBRK
+ { if not (isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($2 = 6 || $2 = 7 || $2 = 14 || $2 = 15 || (22 <= $2 && $2 <= 31)) then error_arg "<prfop> must be one of 6,7,14,15,22-31"
+ else if not ($9._type = ExtendType_UXTW || $9._type = ExtendType_SXTW) then error_arg "<extend> must be one of UXTW,SXTW"
+ else `AArch64LoadRegister($5,X (Ireg (ireg_of_int $2)),$7,AccType_NORMAL,MemOp_PREFETCH,false,false,false,$9._type,0,Set32,DataSize64) }
+ | PRFM imm COMMA LBRK xreg COMMA xreg RBRK
+ { if not (isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($2 = 6 || $2 = 7 || $2 = 14 || $2 = 15 || (22 <= $2 && $2 <= 31)) then error_arg "<prfop> must be one of 6,7,14,15,22-31"
+ else `AArch64LoadRegister($5,X (Ireg (ireg_of_int $2)),$7,AccType_NORMAL,MemOp_PREFETCH,false,false,false,ExtendType_UXTX,0,Set32,DataSize64) }
+ | PRFM imm COMMA LBRK xreg COMMA xreg COMMA EXTEND RBRK
+ { if not (isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($2 = 6 || $2 = 7 || $2 = 14 || $2 = 15 || (22 <= $2 && $2 <= 31)) then error_arg "<prfop> must be one of 6,7,14,15,22-31"
+ else if not ($9._type = ExtendType_SXTX) then error_arg "<extend> must be one of LSL,SXTX"
+ else `AArch64LoadRegister($5,X (Ireg (ireg_of_int $2)),$7,AccType_NORMAL,MemOp_PREFETCH,false,false,false,$9._type,0,Set32,DataSize64) }
+ | PRFM imm COMMA LBRK xreg COMMA xreg COMMA SHIFT RBRK
+ { if not (isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($2 = 6 || $2 = 7 || $2 = 14 || $2 = 15 || (22 <= $2 && $2 <= 31)) then error_arg "<prfop> must be one of 6,7,14,15,22-31"
+ else if not ($9.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of LSL,SXTX"
+ else `AArch64LoadRegister($5,X (Ireg (ireg_of_int $2)),$7,AccType_NORMAL,MemOp_PREFETCH,false,false,false,ExtendType_UXTX,0,Set32,DataSize64) }
+ | PRFM imm COMMA LBRK xreg COMMA xreg COMMA SHIFT imm RBRK
+ { if not (isregsp $5 && isregzr $7) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}]")
+ else if not ($2 = 6 || $2 = 7 || $2 = 14 || $2 = 15 || (22 <= $2 && $2 <= 31)) then error_arg "<prfop> must be one of 6,7,14,15,22-31"
+ else if not ($9.shift_type = ShiftType_LSL) then error_arg "<extend> must be one of LSL,SXTX"
+ else if not ($10 = 0 || $10 = 3) then error_arg "<amount> must be one of 0,3"
+ else `AArch64LoadRegister($5,X (Ireg (ireg_of_int $2)),$7,AccType_NORMAL,MemOp_PREFETCH,false,false,false,ExtendType_UXTX,$10,Set32,DataSize64) }
+
+ /* PRFUM */
+
+ | PRFUM PRFOP COMMA LBRK xreg RBRK
+ { if not (isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>{, #<simm>}]")
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,MemOp_PREFETCH,false,false,false,bit64_of_int 0,Set64,DataSize64) }
+ | PRFUM PRFOP COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>{, #<simm>}]")
+ else if not (-256 <= $7 && $7 <= 255) then error_arg "<simm> must be in the range -256 to 255"
+ else `AArch64LoadImmediate($5,$2,AccType_NORMAL,MemOp_PREFETCH,false,false,false,bit64_of_int $7,Set64,DataSize64) }
+ | PRFUM imm COMMA LBRK xreg RBRK
+ { if not (isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>{, #<simm>}]")
+ else if not ($2 = 6 || $2 = 7 || $2 = 14 || $2 = 15 || (22 <= $2 && $2 <= 31)) then error_arg "<prfop> must be one of 6,7,14,15,22-31"
+ else `AArch64LoadImmediate($5,X (Ireg (ireg_of_int $2)),AccType_NORMAL,MemOp_PREFETCH,false,false,false,bit64_of_int 0,Set64,DataSize64) }
+ | PRFUM imm COMMA LBRK xreg COMMA imm RBRK
+ { if not (isregsp $5) then error_registers ("expected " ^ $1.txt ^ " <prfop>, [<Xn|SP>{, #<simm>}]")
+ else if not ($2 = 6 || $2 = 7 || $2 = 14 || $2 = 15 || (22 <= $2 && $2 <= 31)) then error_arg "<prfop> must be one of 6,7,14,15,22-31"
+ else if not (-256 <= $7 && $7 <= 255) then error_arg "<simm> must be in the range -256 to 255"
+ else `AArch64LoadImmediate($5,X (Ireg (ireg_of_int $2)),AccType_NORMAL,MemOp_PREFETCH,false,false,false,bit64_of_int $7,Set64,DataSize64) }
+
+ /* RET */
+
+ | RET
+ { `AArch64BranchRegister(X (Ireg R30),BranchType_RET) }
+ | RET xreg
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " {<Xn>}")
+ else `AArch64BranchRegister($2,BranchType_RET) }
+
+ /* RBIT/REV/REV16/REV32 */
+
+ | REV wreg COMMA wreg
+ { match $1.op32 with
+ | None -> error_arg "unrecognised instruction"
+ | Some op ->
+ if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>")
+ else `AArch64Reverse($2,$4,Set32,op) }
+ | REV xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>")
+ else `AArch64Reverse($2,$4,Set64,$1.op64) }
+
+ /* SBFIZ/UBFIZ alias of SBFM/UBFM */
+
+ | BFIZ wreg COMMA wreg COMMA imm COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, #<lsb>, #<width>")
+ else if not (0 <= $6 && $6 <= 31) then error_arg "<lsb> must be in the range 0 to 31"
+ else if not (1 <= $8 && $8 <= (32 - $6)) then error_arg "<width> must be in the range 1 to 32-<lsb>"
+ else
+ let (wmask,tmask) = decodeBitMasks 32 0 ($8 - 1) (-$6 mod 32) false in
+ `AArch64BitfieldMove($2,$4,Set32,true,$1.extend,-$6 mod 32,$8 - 1,reg_size_bits_R32_of_big_int wmask,reg_size_bits_R32_of_big_int tmask) }
+ | BFIZ xreg COMMA xreg COMMA imm COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, #<lsb>, #<width>")
+ else if not (0 <= $6 && $6 <= 63) then error_arg "<lsb> must be in the range 0 to 63"
+ else if not (1 <= $8 && $8 <= (64 - $6)) then error_arg "<width> must be in the range 1 to 64-<lsb>"
+ else
+ let (wmask,tmask) = decodeBitMasks 64 1 ($8 - 1) (-$6 mod 64) false in
+ `AArch64BitfieldMove($2,$4,Set64,true,$1.extend,-$6 mod 64,$8 - 1,reg_size_bits_R64_of_big_int wmask,reg_size_bits_R64_of_big_int tmask) }
+
+ /* SBFX/UBFX alias of SBFM/UBFM */
+
+ | BFX wreg COMMA wreg COMMA imm COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, #<lsb>, #<width>")
+ else if not (0 <= $6 && $6 <= 31) then error_arg "<lsb> must be in the range 0 to 31"
+ else if not (1 <= $8 && $8 <= (32 - $6)) then error_arg "<width> must be in the range 1 to 32-<lsb>"
+ else
+ let (wmask,tmask) = decodeBitMasks 32 0 ($6 + $8 - 1) $6 false in
+ `AArch64BitfieldMove($2,$4,Set32,true,$1.extend,$6,$6 + $8 - 1,reg_size_bits_R32_of_big_int wmask,reg_size_bits_R32_of_big_int tmask) }
+ | BFX xreg COMMA xreg COMMA imm COMMA imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, #<lsb>, #<width>")
+ else if not (0 <= $6 && $6 <= 63) then error_arg "<lsb> must be in the range 0 to 63"
+ else if not (1 <= $8 && $8 <= (64 - $6)) then error_arg "<width> must be in the range 1 to 64-<lsb>"
+ else
+ let (wmask,tmask) = decodeBitMasks 64 1 ($6 + $8 - 1) $6 false in
+ `AArch64BitfieldMove($2,$4,Set64,true,$1.extend,$6,$6 + $8 - 1,reg_size_bits_R64_of_big_int wmask,reg_size_bits_R64_of_big_int tmask) }
+
+ /* SDIV/UDIV */
+
+ | DIV wreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>, <Wm>")
+ else `AArch64Division($2,$4,$6,Set32,$1.unsigned) }
+ | DIV xreg COMMA xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>")
+ else `AArch64Division($2,$4,$6,Set64,$1.unsigned) }
+
+ /* SMADDL/SMSUBL/UMADDL/UMSUBL */
+
+ | MADDSUBL xreg COMMA wreg COMMA wreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6 && isregzr $8) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Wn>, <Wm>, <Xa>")
+ else `AArch64MultiplyAddSubLong($2,$4,$6,$8,Set64,DataSize32,$1.sub_op,$1.unsigned) }
+
+ /* SMNEGL/UMNEGL alias of SMSUBL/UMSUBL */
+
+ | MNEGL xreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Wn>, <Wm>")
+ else `AArch64MultiplyAddSubLong($2,$4,$6,X ZR,Set64,DataSize32,true,$1.unsigned) }
+
+ /* SMULH/UMULH */
+
+ | MULH xreg COMMA xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Xn>, <Xm>")
+ else `AArch64MultiplyHigh($2,$4,$6,X ZR,Set64,DataSize64,$1.unsigned) }
+
+ /* SMULL/UMULL alias of SMADDL/UMADDL */
+
+ | MULL xreg COMMA wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4 && isregzr $6) then error_registers ("expected " ^ $1.txt ^ " <Xd>, <Wn>, <Wm>")
+ else `AArch64MultiplyAddSubLong($2,$4,$6,X ZR,Set64,DataSize32,false,$1.unsigned) }
+
+ /* SXTB/SXTH/SXTW alias of SBFM
+ UXTB/UXTH alias of UBFM */
+
+ | EXTEND wreg COMMA wreg
+ { match $1.inst with
+ | None -> error_not_instruction $1.txt
+ | Some inst ->
+ if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>")
+ else
+ let (wmask,tmask) = decodeBitMasks 32 0 7 0 false in
+ `AArch64BitfieldMove($2,$4,Set32,true,inst.extend,0,7,reg_size_bits_R32_of_big_int wmask,reg_size_bits_R32_of_big_int tmask) }
+ | EXTEND xreg COMMA wreg
+ { match $1.inst with
+ | None -> error_not_instruction $1.txt
+ | Some inst ->
+ if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wd>, <Wn>")
+ else
+ let (wmask,tmask) = decodeBitMasks 64 1 7 0 false in
+ `AArch64BitfieldMove($2,$4,Set64,true,inst.extend,0,7,reg_size_bits_R64_of_big_int wmask,reg_size_bits_R64_of_big_int tmask) }
+
+ /* TBZ/TBNZ */
+/*
+ | TBZ wreg COMMA imm COMMA NAME
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <R><t>, #<imm>, <label>")
+ else if not (0 <= $4 && $4 <= 31) then error_arg "<imm> must be in the range 0 to 31"
+ else `AArch64TestBitAndBranch($2,Set32,$4,$1.bit_val,(* FIXME: label *)) }
+ | TBZ xreg COMMA imm COMMA NAME
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <R><t>, #<imm>, <label>")
+ else if not (0 <= $4 && $4 <= 63) then error_arg "<imm> must be in the range 0 to 63"
+ else `AArch64TestBitAndBranch($2,Set64,$4,$1.bit_val,(* FIXME: label *)) }
+*/
+
+ /* TST (immediate) alias of ANDS (immediate) */
+
+ | TST wreg COMMA big_imm
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Wd>, #<imm>")
+ else match encodeBitMasks 32 $4 with
+ | None -> error_arg "<imm> can not be encoded as bitmask"
+ | _ -> `AArch64LogicalImmediate(W ZR,$2,Set32,true,LogicalOp_AND,reg_size_bits_R32_of_big_int $4) }
+ | TST xreg COMMA big_imm
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xd>, #<imm>")
+ else match encodeBitMasks 64 $4 with
+ | None -> error_arg "<imm> can not be encoded as bitmask"
+ | _ -> `AArch64LogicalImmediate(X ZR,$2,Set64,true,LogicalOp_AND,reg_size_bits_R64_of_big_int $4) }
+
+ /* TST (shifted register) alias of ANDS (shifted register) */
+
+ | TST wreg COMMA wreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wn>, <Wm>{, <shift> #<amount>}")
+ else `AArch64LogicalShiftedRegister(W ZR,$2,$4,Set32,true,LogicalOp_AND,ShiftType_LSL,0,false) }
+ | TST wreg COMMA wreg COMMA SHIFT imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Wn>, <Wm>{, <shift> #<amount>}")
+ else if not (0 <= $7 && $7 <= 31) then error_arg "<amount> must be in the range 0 to 31"
+ else `AArch64LogicalShiftedRegister(W ZR,$2,$4,Set32,true,LogicalOp_AND,$6.shift_type,$7,false) }
+
+ | TST xreg COMMA xreg
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn>, <Xm>{, <shift> #<amount>}")
+ else `AArch64LogicalShiftedRegister(X ZR,$2,$4,Set64,true,LogicalOp_AND,ShiftType_LSL,0,false) }
+ | TST xreg COMMA xreg COMMA SHIFT imm
+ { if not (isregzr $2 && isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <Xn>, <Xm>{, <shift> #<amount>}")
+ else if not (0 <= $7 && $7 <= 63) then error_arg "<amount> must be in the range 0 to 63"
+ else `AArch64LogicalShiftedRegister(X ZR,$2,$4,Set64,true,LogicalOp_AND,$6.shift_type,$7,false) }
+
+ /* MRS */
+
+ | MRS xreg COMMA SYSREG
+ { if not (isregzr $2) then error_registers ("expected " ^ $1.txt ^ " <Xt>, <systemreg>")
+ else `AArch64MoveSystemRegister($2,$4.sys_op0,$4.sys_op1,$4.sys_op2,$4.sys_crn,$4.sys_crm,true) }
+
+ /* MSR (immediate) */
+
+ | MSR PSTATEFIELD COMMA imm
+ { if not (0 <= $4 && $4 <= 15) then error_arg "<imm> must be in the range 0 to 15"
+ else `AArch64MoveSystemImmediate($4,$2) }
+
+ /* MSR (register) */
+
+ | MSR SYSREG COMMA xreg
+ { if not (isregzr $4) then error_registers ("expected " ^ $1.txt ^ " <systemreg>, <Xt>")
+ else `AArch64MoveSystemRegister($4,$2.sys_op0,$2.sys_op1,$2.sys_op2,$2.sys_crn,$2.sys_crm,false) }
diff --git a/aarch64_small/gen/pretty.hgen b/aarch64_small/gen/pretty.hgen
new file mode 100644
index 00000000..2bbf7af7
--- /dev/null
+++ b/aarch64_small/gen/pretty.hgen
@@ -0,0 +1,393 @@
+| `AArch64TMStart t ->
+ sprintf "TSTART %s" (pp_regzr Set64 t)
+
+| `AArch64TMCommit -> "TCOMMIT"
+
+| `AArch64TMAbort (retry,reason) ->
+ sprintf "TABORT %s" (pp_imm (if retry then 32 + reason else reason))
+
+| `AArch64TMTest -> "TTEST"
+
+| `AArch64ImplementationDefinedStopFetching ->
+ "_STOP_FETCHING"
+
+| `AArch64ImplementationDefinedThreadStart ->
+ "_THREAD_START"
+
+| `AArch64ImplementationDefinedTestBeginEnd (isEnd) ->
+ if isEnd then
+ "_TEST_ENDS"
+ else
+ "_TEST_BEGINS"
+
+| `AArch64AddSubCarry (d,n,m,datasize,sub_op,setflags) ->
+ if sub_op && is_zero_reg n then
+ sprintf "%s %s,%s" (pp_withflags "NGC" setflags) (pp_regzr datasize d) (pp_regzr datasize m)
+ else if sub_op then
+ sprintf "%s %s,%s,%s" (pp_withflags "SBC" setflags) (pp_regzr datasize d) (pp_regzr datasize n) (pp_regzr datasize m)
+ else
+ sprintf "%s %s,%s,%s" (pp_withflags "ADC" setflags) (pp_regzr datasize d) (pp_regzr datasize n) (pp_regzr datasize m)
+
+| `AArch64AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift) ->
+ if setflags && is_zero_reg d then
+ begin
+ if (is_sp_reg n) && ((datasize = Set32 && extend_type = ExtendType_UXTW) || (datasize = Set64 && extend_type = ExtendType_UXTX)) then
+ sprintf "%s %s,%s%s" (if sub_op then "CMP" else "CMN") (pp_regsp datasize n) (pp_regzrbyext datasize extend_type m)
+ (if shift = 0 then "" else (",LSL " ^ (pp_imm shift)))
+ else
+ sprintf "%s %s,%s%s" (if sub_op then "CMP" else "CMN") (pp_regsp datasize n) (pp_regzrbyext datasize extend_type m) (pp_addsub_regext datasize extend_type shift)
+ end
+ else if (is_sp_reg d || is_sp_reg n) && ((datasize = Set32 && extend_type = ExtendType_UXTW) || (datasize = Set64 && extend_type = ExtendType_UXTX)) then
+ sprintf "%s %s,%s,%s%s" (pp_addsub sub_op setflags) (if setflags then pp_regzr datasize d else pp_regsp datasize d) (pp_regsp datasize n) (pp_regzrbyext datasize extend_type m)
+ (if shift = 0 then "" else (",LSL " ^ (pp_imm shift)))
+ else
+ sprintf "%s %s,%s,%s%s" (pp_addsub sub_op setflags) (if setflags then pp_regzr datasize d else pp_regsp datasize d) (pp_regsp datasize n) (pp_regzrbyext datasize extend_type m) (pp_addsub_regext datasize extend_type shift)
+
+| `AArch64AddSubImmediate (d,n,datasize,sub_op,setflags,imm) ->
+ let (imm12,shift) =
+ if reg_size_bits_iskbituimm 12 imm then (reg_size_bits_to_int imm, 0)
+ else (reg_size_bits_to_int (reg_size_bits_shift_right imm 12), 12)
+ in
+ if (sub_op,setflags) = (false,false) && (is_sp_reg d || is_sp_reg n) && (shift = 0 && imm12 = 0) then
+ sprintf "MOV %s,%s" (pp_regsp datasize d) (pp_regsp datasize n)
+ else if setflags && is_zero_reg d then
+ sprintf "%s %s,%s%s" (if sub_op then "CMP" else "CMN") (pp_regsp datasize n) (pp_imm imm12) (if shift = 0 then "" else ",LSL #12")
+ else
+ sprintf "%s %s,%s,%s%s" (pp_addsub sub_op setflags) (if setflags then pp_regzr datasize d else pp_regsp datasize d) (pp_regsp datasize n) (pp_imm imm12) (if shift = 0 then "" else ",LSL #12")
+
+| `AArch64AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount) ->
+ if setflags && is_zero_reg d then
+ begin
+ if shift_type = ShiftType_LSL && shift_amount = 0 then
+ sprintf "%s %s,%s" (if sub_op then "CMP" else "CMN") (pp_regzr datasize n) (pp_regzr datasize m)
+ else
+ sprintf "%s %s,%s,%s %s" (if sub_op then "CMP" else "CMN") (pp_regzr datasize n) (pp_regzr datasize m) (pp_shift shift_type) (pp_imm shift_amount)
+ end
+ else if sub_op && is_zero_reg n then
+ begin
+ if shift_type = ShiftType_LSL && shift_amount = 0 then
+ sprintf "%s %s,%s" (pp_withflags "NEG" setflags) (pp_regzr datasize d) (pp_regzr datasize m)
+ else
+ sprintf "%s %s,%s,%s %s" (pp_withflags "NEG" setflags) (pp_regzr datasize d) (pp_regzr datasize m) (pp_shift shift_type) (pp_imm shift_amount)
+ end
+ else if shift_type = ShiftType_LSL && shift_amount = 0 then
+ sprintf "%s %s,%s,%s" (pp_addsub sub_op setflags) (pp_regzr datasize d) (pp_regzr datasize n) (pp_regzr datasize m)
+ else
+ sprintf "%s %s,%s,%s,%s %s" (pp_addsub sub_op setflags) (pp_regzr datasize d) (pp_regzr datasize n) (pp_regzr datasize m) (pp_shift shift_type) (pp_imm shift_amount)
+
+| `AArch64Address (d,page,imm) ->
+ sprintf "%s %s,%s" (if page then "ADRP" else "ADR") (pp_regzr Set64 d) (pp_offset page imm)
+
+| `AArch64LogicalImmediate (d,n,datasize,setflags,op,imm) ->
+ if op = LogicalOp_AND && setflags && is_zero_reg d then
+ sprintf "TST %s,%s" (pp_regzr datasize n) (pp_reg_size_imm imm)
+ else if op = LogicalOp_ORR && not setflags && is_zero_reg n && not (moveWidePreferred datasize imm) then (* ARM: missing the check of n=ZR *)
+ sprintf "MOV %s,%s" (pp_regsp datasize d) (pp_reg_size_imm imm)
+ else sprintf "%s %s,%s,%s" (pp_logop op setflags false) (if setflags then pp_regzr datasize d else pp_regsp datasize d) (pp_regzr datasize n) (pp_reg_size_imm imm)
+
+| `AArch64LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert) ->
+ if op = LogicalOp_AND && setflags && not invert && is_zero_reg d then
+ begin
+ if shift_type = ShiftType_LSL && shift_amount = 0 then
+ sprintf "TST %s,%s" (pp_regzr datasize n) (pp_regzr datasize m)
+ else
+ sprintf "TST %s,%s,%s %s" (pp_regzr datasize n) (pp_regzr datasize m) (pp_shift shift_type) (pp_imm shift_amount)
+ end
+ else if op = LogicalOp_ORR && not setflags && invert && is_zero_reg n then
+ begin
+ if shift_type = ShiftType_LSL && shift_amount = 0 then
+ sprintf "MVN %s,%s" (pp_regzr datasize d) (pp_regzr datasize m)
+ else
+ sprintf "MVN %s,%s,%s %s" (pp_regzr datasize d) (pp_regzr datasize m) (pp_shift shift_type) (pp_imm shift_amount)
+ end
+ else if op = LogicalOp_ORR && not setflags && not invert && is_zero_reg n && shift_type = ShiftType_LSL && shift_amount = 0 then
+ sprintf "MOV %s,%s" (pp_regzr datasize d) (pp_regzr datasize m)
+ else
+ begin
+ if shift_type = ShiftType_LSL && shift_amount = 0 then
+ sprintf "%s %s,%s,%s" (pp_logop op setflags invert) (pp_regzr datasize d) (pp_regzr datasize n) (pp_regzr datasize m)
+ else
+ sprintf "%s %s,%s,%s,%s %s" (pp_logop op setflags invert) (pp_regzr datasize d) (pp_regzr datasize n) (pp_regzr datasize m) (pp_shift shift_type) (pp_imm shift_amount)
+ end
+
+| `AArch64Shift (d,n,m,datasize,shift_type) ->
+ sprintf "%s %s,%s,%s" (pp_shiftop shift_type) (pp_regzr datasize d) (pp_regzr datasize n) (pp_regzr datasize m)
+
+| `AArch64BranchConditional (offset,condition) ->
+ sprintf "B.%s %s" (pp_cond condition) (pp_offset false offset)
+
+| `AArch64BranchImmediate (branch_type,offset) ->
+ sprintf "%s %s" (pp_branchimmediate branch_type) (pp_offset false offset)
+
+| `AArch64BitfieldMove (d,n,datasize,inzero,extend,_R,_S,wmask,tmask) ->
+ if (inzero,extend) = (false,false) && _S < _R then
+ sprintf "BFI %s,%s,%s,%s" (pp_regzr datasize d) (pp_regzr datasize n) (pp_imm _R) (pp_imm (_S+1)) (* FIXME: I'm not sure this is the right translation of imms and immr *)
+ else if (inzero,extend) = (false,false) && _S >= _R then
+ sprintf "BFXIL %s,%s,%s,%s" (pp_regzr datasize d) (pp_regzr datasize n) (pp_imm _R) (pp_imm (_S-_R+1))
+ else if (inzero,extend) = (true,false) && datasize = Set32 && _S <> 0b011111 && _S+1 = _R then
+ sprintf "LSL %s,%s,%s" (pp_regzr datasize d) (pp_regzr datasize n) (pp_imm (31-_S))
+ else if (inzero,extend) = (true,false) && datasize = Set64 && _S <> 0b111111 && _S+1 = _R then
+ sprintf "LSL %s,%s,%s" (pp_regzr datasize d) (pp_regzr datasize n) (pp_imm (63-_S))
+ else if inzero && datasize = Set32 && _S = 0b011111 then
+ sprintf "%s %s,%s,%s" (if extend then "ASR" else "LSR") (pp_regzr datasize d) (pp_regzr datasize n) (pp_imm _R)
+ else if inzero && datasize = Set64 && _S = 0b111111 then
+ sprintf "%s %s,%s,%s" (if extend then "ASR" else "LSR") (pp_regzr datasize d) (pp_regzr datasize n) (pp_imm _R)
+ else if inzero && _S < _R then
+ sprintf "%s %s,%s,%s,%s" (if extend then "SBFIZ" else "UBFIZ") (pp_regzr datasize d) (pp_regzr datasize n) (pp_imm _R) (pp_imm (_S+1)) (* FIXME: -<lsb> MOD 32/64 *)
+ else if inzero && bFXPreferred datasize (if extend then 0 else 1) _S _R then
+ sprintf "%s %s,%s,%s,%s" (if extend then "SBFX" else "UBFX") (pp_regzr datasize d) (pp_regzr datasize n) (pp_imm _R) (pp_imm (_S - _R + 1))
+ else if inzero && _R = 0 && _S = 0b000111 then
+ sprintf "%s %s,%s" (if extend then "SXTB" else "UXTB") (pp_regzr datasize d) (pp_regzr Set32 n)
+ else if inzero && _R = 0 && _S = 0b001111 then
+ sprintf "%s %s,%s" (if extend then "SXTH" else "UXTH") (pp_regzr datasize d) (pp_regzr Set32 n)
+ else if (inzero,extend) = (true,true) && _R = 0 && _S = 0b011111 then (* implicitly datasize = Set64 *)
+ sprintf "SXTW %s,%s" (pp_regzr datasize d) (pp_regzr Set32 n)
+ else
+ sprintf "%s %s,%s,%s,%s" (pp_bfm inzero extend) (pp_regzr datasize d) (pp_regzr datasize n) (pp_imm _R) (pp_imm _S)
+
+| `AArch64BranchRegister (n,branch_type) ->
+ if branch_type = BranchType_RET && n = X (Ireg R30) then
+ "RET"
+ else
+ sprintf "%s %s" (pp_branchregister branch_type) (pp_regzr Set64 n)
+
+| `AArch64CompareAndBranch (t,datasize,iszero,offset) ->
+ sprintf "%s %s,%s" (if iszero then "CBZ" else "CBNZ") (pp_regzr datasize t) (pp_offset false offset)
+
+| `AArch64ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm) ->
+ sprintf "%s %s,%s,%s,%s" (if sub_op then "CCMP" else "CCMN") (pp_regzr datasize n) (pp_reg_size_imm imm) (pp_imm flags) (pp_cond condition)
+
+| `AArch64ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags) ->
+ sprintf "%s %s,%s,%s,%s" (if sub_op then "CCMP" else "CCMN") (pp_regzr datasize n) (pp_regzr datasize m) (pp_imm flags) (pp_cond condition)
+
+| `AArch64ClearExclusiveMonitor (imm) ->
+ if imm = 15 then
+ sprintf "CLREX"
+ else
+ sprintf "CLREX %s" (pp_imm imm)
+
+| `AArch64CountLeading (d,n,datasize,opcode) ->
+ sprintf "%s %s,%s" (pp_countop opcode) (pp_regzr datasize d) (pp_regzr datasize n)
+
+| `AArch64CRC (d,n,m,size,crc32c) ->
+ sprintf "%s %s,%s,%s" (pp_crc size crc32c) (pp_regzr Set32 d) (pp_regzr Set32 n) (pp_regzr (if size = DataSize64 then Set64 else Set32) m)
+
+| `AArch64ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc) ->
+ if not else_inv && else_inc && n = m && not (is_zero_reg n) && not (condition = 0b1110 || condition = 0b1111) then
+ sprintf "CINC %s,%s,%s" (pp_regzr datasize d) (pp_regzr datasize n) (pp_cond condition)
+ else if not else_inv && else_inc && n = m && is_zero_reg n && not (condition = 0b1110 || condition = 0b1111) then
+ sprintf "CSET %s,%s" (pp_regzr datasize d) (pp_cond condition)
+ else if else_inv && not else_inc && n = m && not (is_zero_reg n) && not (condition = 0b1110 || condition = 0b1111) then
+ sprintf "CINV %s,%s,%s" (pp_regzr datasize d) (pp_regzr datasize n) (pp_cond condition)
+ else if else_inv && not else_inc && n = m && is_zero_reg n && not (condition = 0b1110 || condition = 0b1111) then
+ sprintf "CSETM %s,%s" (pp_regzr datasize d) (pp_cond condition)
+ else if else_inv && else_inc && n = m && not (condition = 0b1110 || condition = 0b1111) then
+ sprintf "CNEG %s,%s,%s" (pp_regzr datasize d) (pp_regzr datasize n) (pp_cond condition)
+ else
+ sprintf "%s %s,%s,%s,%s" (pp_csel else_inv else_inc) (pp_regzr datasize d) (pp_regzr datasize n) (pp_regzr datasize m) (pp_cond condition)
+
+| `AArch64Barrier (op,domain,types) ->
+ if op = MemBarrierOp_ISB && domain = MBReqDomain_FullSystem && types = MBReqTypes_All then
+ pp_barr op
+ else
+ sprintf "%s %s" (pp_barr op) (pp_barroption domain types)
+
+| `AArch64ExtractRegister (d,n,m,datasize,lsb) ->
+ if n = m then
+ sprintf "ROR %s,%s,%s" (pp_regzr datasize d) (pp_regzr datasize n) (pp_imm lsb)
+ else
+ sprintf "EXTR %s,%s,%s,%s" (pp_regzr datasize d) (pp_regzr datasize n) (pp_regzr datasize m) (pp_imm lsb)
+
+| `AArch64Hint (op) ->
+ begin
+ match op with
+ | SystemHintOp_NOP -> "NOP"
+ | SystemHintOp_YIELD -> "YIELD"
+ | SystemHintOp_WFE -> "WFE"
+ | SystemHintOp_WFI -> "WFI"
+ | SystemHintOp_SEV -> "SEV"
+ | SystemHintOp_SEVL -> "SEVL"
+ end
+
+| `AArch64LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize) ->
+ if pair && memop = MemOp_LOAD then
+ sprintf "%s %s,%s,[%s]" (pp_ldaxstlxp memop acctype excl pair datasize) (pp_regzr regsize t) (pp_regzr regsize t2) (pp_regsp Set64 n)
+ else if pair && memop = MemOp_STORE then
+ sprintf "%s %s,%s,%s,[%s]" (pp_ldaxstlxp memop acctype excl pair datasize) (pp_regzr Set32 s) (pp_regzr regsize t) (pp_regzr regsize t2) (pp_regsp Set64 n)
+ else if not pair && memop = MemOp_STORE && excl then
+ sprintf "%s %s,%s,[%s]" (pp_ldaxstlxp memop acctype excl pair datasize) (pp_regzr Set32 s) (pp_regzr regsize t) (pp_regsp Set64 n)
+ else
+ sprintf "%s %s,[%s]" (pp_ldaxstlxp memop acctype excl pair datasize) (pp_regzr regsize t) (pp_regsp Set64 n)
+
+| `AArch64LoadStorePair (wback,postindex,n,t,t2,acctype,memop,signed,datasize,offset) ->
+ begin
+ let inst = if signed then "LDPSW" else if memop = MemOp_LOAD then "LDP" else "STP" in
+ let regsize = if signed then Set64 else (match datasize with DataSize32 -> Set32 | DataSize64 -> Set64 | DataSize16 | DataSize8 -> failwith "unexpected value") in
+ match (wback,postindex) with
+ | (true,true) ->
+ sprintf "%s %s,%s,[%s],%s" inst (pp_regzr regsize t) (pp_regzr regsize t2) (pp_regsp Set64 n) (pp_big_imm offset)
+ | (true,false) ->
+ sprintf "%s %s,%s,[%s,%s]!" inst (pp_regzr regsize t) (pp_regzr regsize t2) (pp_regsp Set64 n) (pp_big_imm offset)
+ | (false,false) ->
+ if eq_bit64 offset (bit64_of_int 0) then
+ sprintf "%s %s,%s,[%s]" inst (pp_regzr regsize t) (pp_regzr regsize t2) (pp_regsp Set64 n)
+ else
+ sprintf "%s %s,%s,[%s,%s]" inst (pp_regzr regsize t) (pp_regzr regsize t2) (pp_regsp Set64 n) (pp_big_imm offset)
+ | (false,true) -> failwith "unexpected value"
+ end
+
+| `AArch64LoadImmediate (n,t,acctype,memop,signed,wback,postindex,offset,regsize,datasize) ->
+ begin
+ if memop = MemOp_PREFETCH then
+ begin
+ (* the ast does not hold enough information to distinguish PRFM and PRFUM in some cases.
+ PRFM: <pimm> is a multiple of 8 in the range 0 to 32760
+ PRFUM: <simm> is in the range -256 to 255 *)
+ if eq_bit64 offset (bit64_of_int 0) then
+ sprintf "PRFM %s,[%s]" (pp_prfop (inst_reg_to_int t)) (pp_regsp Set64 n)
+ else if big_in_range offset (-256) 255 then
+ sprintf "PRFUM %s,[%s,%s]" (pp_prfop (inst_reg_to_int t)) (pp_regsp Set64 n) (pp_big_imm offset)
+ else
+ sprintf "PRFM %s,[%s,%s]" (pp_prfop (inst_reg_to_int t)) (pp_regsp Set64 n) (pp_big_imm offset)
+ end
+ else
+ let inst =
+ (if memop = MemOp_LOAD then "LD" else "ST") ^
+ (if not wback && not postindex &&
+ not begin match datasize with
+ | DataSize8 ->
+ Nat_big_num.less_equal Nat_big_num.zero offset &&
+ Nat_big_num.less_equal offset (Nat_big_num.of_int 4095)
+ | DataSize16 ->
+ Nat_big_num.less_equal Nat_big_num.zero offset &&
+ Nat_big_num.less_equal offset (Nat_big_num.of_int 8190) &&
+ Nat_big_num.equal
+ (Nat_big_num.modulus offset (Nat_big_num.of_int 2))
+ Nat_big_num.zero
+ | DataSize32 ->
+ Nat_big_num.less_equal Nat_big_num.zero offset &&
+ Nat_big_num.less_equal offset (Nat_big_num.of_int 16380) &&
+ Nat_big_num.equal
+ (Nat_big_num.modulus offset (Nat_big_num.of_int 4))
+ Nat_big_num.zero
+ | DataSize64 ->
+ Nat_big_num.less_equal Nat_big_num.zero offset &&
+ Nat_big_num.less_equal offset (Nat_big_num.of_int 32760) &&
+ Nat_big_num.equal
+ (Nat_big_num.modulus offset (Nat_big_num.of_int 8))
+ Nat_big_num.zero
+ end
+ then
+ begin
+ if acctype=AccType_UNPRIV then "TR"
+ else "UR"
+ end
+ else "R") ^
+ (if signed then "S" else "") ^
+ (match datasize with
+ | DataSize8 -> "B"
+ | DataSize16 -> "H"
+ | DataSize32 -> if regsize = Set32 then "" else "W"
+ | DataSize64 -> "") in
+ match (wback,postindex) with
+ | (true,true) ->
+ sprintf "%s %s,[%s],%s" inst (pp_regzr regsize t) (pp_regsp Set64 n) (pp_big_imm offset)
+ | (true,false) ->
+ sprintf "%s %s,[%s,%s]!" inst (pp_regzr regsize t) (pp_regsp Set64 n) (pp_big_imm offset)
+ | (false,false) ->
+ if eq_bit64 offset (bit64_of_int 0) then
+ sprintf "%s %s,[%s]" inst (pp_regzr regsize t) (pp_regsp Set64 n)
+ else
+ sprintf "%s %s,[%s,%s]" inst (pp_regzr regsize t) (pp_regsp Set64 n) (pp_big_imm offset)
+ | (false,true) -> failwith "unexpected value"
+ end
+
+| `AArch64LoadLiteral (t,memop,signed,size,offset,datasize) ->
+ if memop = MemOp_PREFETCH then
+ sprintf "PRFM %s,%s" (pp_prfop (inst_reg_to_int t)) (pp_offset false offset)
+ else
+ let datasize =
+ if signed then Set64
+ else
+ begin match datasize with
+ | DataSize64 -> Set64
+ | DataSize32 -> Set32
+ | DataSize16 | DataSize8 -> failwith "unexpected value"
+ end
+ in
+ sprintf "%s %s,%s" (if signed then "LDRSW" else "LDR") (pp_regzr datasize t) (pp_offset false offset)
+
+| `AArch64LoadRegister (n,t,m,acctype,memop,signed,wback,postindex,extend_type,shift,regsize,datasize) ->
+ begin
+ if memop = MemOp_PREFETCH then
+ begin
+ if extend_type = ExtendType_UXTX && shift = 0 then
+ sprintf "PRFM %s,[%s,%s]" (pp_prfop (inst_reg_to_int t)) (pp_regsp Set64 n) (pp_regzrbyext Set64 extend_type m)
+ else if extend_type = ExtendType_UXTX (* && shift <> 0 *) then
+ sprintf "PRFM %s,[%s,%s,LSL %s]" (pp_prfop (inst_reg_to_int t)) (pp_regsp Set64 n) (pp_regzrbyext Set64 extend_type m) (pp_imm shift)
+ else
+ sprintf "PRFM %s,[%s,%s%s]" (pp_prfop (inst_reg_to_int t)) (pp_regsp Set64 n) (pp_regzrbyext Set64 extend_type m) (pp_ldrstr_regext extend_type shift)
+ end
+ else
+ let inst =
+ (if memop = MemOp_LOAD then "LDR" else "STR") ^
+ (if signed then "S" else "") ^
+ (match datasize with
+ | DataSize8 -> "B"
+ | DataSize16 -> "H"
+ | DataSize32 -> if regsize = Set32 then "" else "W"
+ | DataSize64 -> "") in
+ if extend_type = ExtendType_UXTX && shift = 0 then
+ sprintf "%s %s,[%s,%s]" inst (pp_regzr regsize t) (pp_regsp Set64 n) (pp_regzrbyext Set64 extend_type m)
+ else if extend_type = ExtendType_UXTX (* && shift <> 0 *) then
+ sprintf "%s %s,[%s,%s,LSL %s]" inst (pp_regzr regsize t) (pp_regsp Set64 n) (pp_regzrbyext Set64 extend_type m) (pp_imm shift)
+ else
+ sprintf "%s %s,[%s,%s%s]" inst (pp_regzr regsize t) (pp_regsp Set64 n) (pp_regzrbyext Set64 extend_type m) (pp_ldrstr_regext extend_type shift)
+ end
+
+| `AArch64MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op) ->
+ if is_zero_reg a then
+ sprintf "%s %s,%s,%s" (if sub_op then "MNEG" else "MUL") (pp_regzr destsize d) (pp_regzr destsize n) (pp_regzr destsize m)
+ else
+ sprintf "%s %s,%s,%s,%s" (if sub_op then "MSUB" else "MADD") (pp_regzr destsize d) (pp_regzr destsize n) (pp_regzr destsize m) (pp_regzr destsize a)
+
+| `AArch64MoveWide (d,datasize,imm,pos,opcode) ->
+ if opcode = MoveWideOp_N && datasize = Set32 && (not (imm = 0 && pos <> 0)) && not (imm = 0xffff) then
+ sprintf "MOV %s,%s" (pp_regzr datasize d) (pp_imm (lnot (imm lsl (pos*16))))
+ else if opcode = MoveWideOp_N && datasize = Set64 && (not (imm = 0 && pos <> 0)) then
+ sprintf "MOV %s,%s" (pp_regzr datasize d) (pp_imm (lnot (imm lsl (pos*16))))
+ else if opcode = MoveWideOp_Z && (not (imm = 0 && pos <> 0)) then
+ sprintf "MOV %s,%s" (pp_regzr datasize d) (pp_imm (imm lsl (pos*16)))
+ else if pos = 0 then
+ sprintf "%s %s,%s" (pp_movwide opcode) (pp_regzr datasize d) (pp_imm imm)
+ else
+ sprintf "%s %s,%s,LSL %s" (pp_movwide opcode) (pp_regzr datasize d) (pp_imm imm) (pp_imm pos)
+
+| `AArch64Reverse (d,n,datasize,op) ->
+ sprintf "%s %s,%s" (pp_reverse datasize op) (pp_regzr datasize d) (pp_regzr datasize n)
+
+| `AArch64Division (d,n,m,datasize,unsigned) ->
+ sprintf "%s %s,%s,%s" (if unsigned then "UDIV" else "SDIV") (pp_regzr datasize d) (pp_regzr datasize n) (pp_regzr datasize m)
+
+| `AArch64MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,unsigned) ->
+ if sub_op && is_zero_reg a then
+ sprintf "%s %s,%s,%s" (if unsigned then "UMNEGL" else "SMNEGL") (pp_regzr Set64 d) (pp_regzr Set32 n) (pp_regzr Set32 m)
+ else if not sub_op && is_zero_reg a then
+ sprintf "%s %s,%s,%s" (if unsigned then "UMULL" else "SMULL") (pp_regzr Set64 d) (pp_regzr Set32 n) (pp_regzr Set32 m)
+ else
+ sprintf "%s %s,%s,%s,%s" (pp_maddsubl sub_op unsigned) (pp_regzr Set64 d) (pp_regzr Set32 n) (pp_regzr Set32 m) (pp_regzr Set64 a)
+
+| `AArch64MultiplyHigh (d,n,m,a,destsize,datasize,unsigned) ->
+ sprintf "%s %s,%s,%s" (if unsigned then "UMULH" else "SMULH") (pp_regzr Set64 d) (pp_regzr Set64 n) (pp_regzr Set64 m)
+
+| `AArch64TestBitAndBranch (t,datasize,bit_pos,bit_val,offset) ->
+ sprintf "%s %s,%s,%s" (if bit_pos = 1 then "TBNZ" else "TBZ") (pp_regzr datasize t) (pp_imm bit_pos) (pp_offset false offset)
+
+| `AArch64MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read) ->
+ if read then
+ sprintf "MRS %s,%s" (pp_regzr Set64 t) (pp_sysreg (sys_op0,sys_op1,sys_op2,sys_crn,sys_crm))
+ else
+ sprintf "MSR %s,%s" (pp_sysreg (sys_op0,sys_op1,sys_op2,sys_crn,sys_crm)) (pp_regzr Set64 t)
+
+| `AArch64MoveSystemImmediate (operand,field) ->
+ sprintf "MSR %s,%s" (pp_pstatefield field) (pp_imm operand)
diff --git a/aarch64_small/gen/regs_out_in.hgen b/aarch64_small/gen/regs_out_in.hgen
new file mode 100644
index 00000000..724a574b
--- /dev/null
+++ b/aarch64_small/gen/regs_out_in.hgen
@@ -0,0 +1,155 @@
+(* for each instruction instance, identify the role of the registers
+ and possible branching: (outputs, inputs, voidstars, branch) *)
+
+| `AArch64TMStart t -> failwith "TSTART is not implemented"
+| `AArch64TMCommit -> failwith "TCOMMIT is not implemented"
+| `AArch64TMAbort (retry,reason) -> failwith "TABORT is not implemented"
+| `AArch64TMTest -> failwith "TTEST is not implemented"
+
+| `AArch64AddSubCarry (d,n,m,_datasize,_sub_op,_setflags) ->
+ ([d], [n; m], [], [Next])
+
+| `AArch64AddSubExtendRegister (d,n,m,_datasize,_sub_op,_setflags,_extend_type,_shift) ->
+ ([d], [n; m], [], [Next])
+
+| `AArch64AddSubShiftedRegister (d,n,m,_datasize,_sub_op,_setflags,_shift_type,_shift_amount) ->
+ ([d], [n; m], [], [Next])
+
+| `AArch64AddSubImmediate (d,n,_datasize,_sub_op,_setflags,_imm) ->
+ ([d], [n], [], [Next])
+
+| `AArch64Address (d,_page,_imm) ->
+ ([d], [], [], [Next])
+
+| `AArch64LogicalImmediate (d,n,_datasize,_setflags,_op,_imm) ->
+ ([d], [n], [], [Next])
+
+| `AArch64LogicalShiftedRegister (d,n,m,_datasize,_setflags,_op,_shift_type,_shift_amount,_invert) ->
+ ([d], [n; m], [], [Next])
+
+| `AArch64Shift (d,n,m,_datasize,_shift_type) ->
+ ([d], [n; m], [], [Next])
+
+| `AArch64BranchConditional (__offset,_condition) ->
+ ([], [], [], [Next])
+
+| `AArch64BranchImmediate (branch_type,__offset) ->
+ ([], [], [], [Next])
+
+| `AArch64BitfieldMove (d,n,_datasize,_inzero,_extend,_R,_S,_wmask,_tmask) ->
+ ([d], [n], [], [Next])
+
+| `AArch64BranchRegister (n,branch_type) ->
+ ([], [n], [], [Next])
+
+| `AArch64CompareAndBranch (t,_datasize,_iszero,__offset) ->
+ ([], [t], [], [Next])
+
+| `AArch64ConditionalCompareImmediate (n,_datasize,_sub_op,_condition,_flags,_imm) ->
+ ([], [n], [], [Next])
+
+| `AArch64ConditionalCompareRegister (n,m,_datasize,_sub_op,_condition,_flags) ->
+ ([], [n; m], [], [Next])
+
+| `AArch64ClearExclusiveMonitor (_imm) ->
+ ([], [], [], [Next])
+
+| `AArch64CountLeading (d,n,_datasize,__opcode) ->
+ ([d], [n], [], [Next])
+
+| `AArch64CRC (d,n,m,_size,_crc32c) ->
+ ([d], [n; m], [], [Next])
+
+| `AArch64ConditionalSelect (d,n,m,_datasize,_condition,_else_inv,_else_inc) ->
+ ([d], [n; m], [], [Next])
+
+| `AArch64Barrier (_op,_domain,_types) ->
+ ([], [], [], [Next])
+
+| `AArch64ExtractRegister (d,n,m,_datasize,_lsb) ->
+ ([d], [n; m], [], [Next])
+
+| `AArch64Hint (_op) ->
+ ([], [], [], [Next])
+
+| `AArch64LoadStoreAcqExc (n,t,t2,s,_acctype,false,false,MemOp_STORE,_elsize,_regsize,_datasize) ->
+ ([], [t; n], [n], [Next])
+| `AArch64LoadStoreAcqExc (n,t,t2,s,_acctype,true,false,MemOp_STORE,_elsize,_regsize,_datasize) ->
+ ([s], [t; n], [n], [Next])
+| `AArch64LoadStoreAcqExc (n,t,t2,s,_acctype,true,true,MemOp_STORE,_elsize,_regsize,_datasize) ->
+ ([s], [t; t2; n], [n], [Next])
+
+| `AArch64LoadStoreAcqExc (n,t,t2,s,_acctype,false,false,MemOp_LOAD,_elsize,_regsize,_datasize) ->
+ ([t], [n], [n], [Next])
+| `AArch64LoadStoreAcqExc (n,t,t2,s,_acctype,true,false,MemOp_LOAD,_elsize,_regsize,_datasize) ->
+ ([t], [n], [n], [Next])
+| `AArch64LoadStoreAcqExc (n,t,t2,s,_acctype,true,true,MemOp_LOAD,_elsize,_regsize,_datasize) ->
+ ([t; t2], [n], [n], [Next])
+
+| `AArch64LoadStorePair (false,_postindex,n,t,t2,_acctype,MemOp_STORE,_signed,_datasize,_offset) ->
+ ([], [n; t; t2], [n], [Next])
+| `AArch64LoadStorePair (true,_postindex,n,t,t2,_acctype,MemOp_STORE,_signed,_datasize,_offset) ->
+ ([n], [n; t; t2], [n], [Next])
+
+| `AArch64LoadStorePair (false,_postindex,n,t,t2,_acctype,MemOp_LOAD,_signed,_datasize,_offset) ->
+ ([t; t2], [n], [n], [Next])
+| `AArch64LoadStorePair (true,_postindex,n,t,t2,_acctype,MemOp_LOAD,_signed,_datasize,_offset) ->
+ ([t; t2; n], [n], [n], [Next])
+
+| `AArch64LoadImmediate (n,t,_acctype,MemOp_STORE,_signed,false,_postindex,_offset,_regsize,_datasize) ->
+ ([], [n; t], [n], [Next])
+| `AArch64LoadImmediate (n,t,_acctype,MemOp_STORE,_signed,true,_postindex,_offset,_regsize,_datasize) ->
+ ([n], [n; t], [n], [Next])
+
+| `AArch64LoadImmediate (n,t,_acctype,MemOp_LOAD,_signed,false,_postindex,_offset,_regsize,_datasize) ->
+ ([t], [n], [n], [Next])
+| `AArch64LoadImmediate (n,t,_acctype,MemOp_LOAD,_signed,true,_postindex,_offset,_regsize,_datasize) ->
+ ([t; n], [n], [n], [Next])
+
+| `AArch64LoadLiteral (t,MemOp_STORE,_signed,_size,_offset,_datasize) ->
+ ([], [t], [], [Next])
+
+| `AArch64LoadLiteral (t,MemOp_LOAD,_signed,_size,_offset,_datasize) ->
+ ([t], [], [], [Next])
+
+| `AArch64LoadRegister (n,t,m,_acctype,MemOp_STORE,_signed,false,_postindex,_extend_type,_shift,_regsize,_datasize) ->
+ ([], [n; t; m], [n], [Next])
+| `AArch64LoadRegister (n,t,m,_acctype,MemOp_STORE,_signed,true,_postindex,_extend_type,_shift,_regsize,_datasize) ->
+ ([n], [n; t; m], [n], [Next])
+
+| `AArch64LoadRegister (n,t,m,_acctype,MemOp_LOAD,_signed,false,_postindex,_extend_type,_shift,_regsize,_datasize) ->
+ ([t], [n; m], [n], [Next])
+| `AArch64LoadRegister (n,t,m,_acctype,MemOp_LOAD,_signed,true,_postindex,_extend_type,_shift,_regsize,_datasize) ->
+ ([t; n], [n; m], [n], [Next])
+
+| `AArch64LoadRegister (n,t,m,_acctype,MemOp_PREFETCH,_signed,_wback,_postindex,_extend_type,_shift,_regsize,_datasize) ->
+ ([], [n; m], [n], [Next])
+
+| `AArch64MultiplyAddSub (d,n,m,a,_destsize,_datasize,_sub_op) ->
+ ([d], [n; m; a], [], [Next])
+
+| `AArch64MoveWide (d,_datasize,_imm,_pos,_opcode) ->
+ ([d], [], [], [Next])
+
+| `AArch64Reverse (d,n,_datasize,_op) ->
+ ([d], [n], [], [Next])
+
+| `AArch64Division (d,n,m,_datasize,_unsigned) ->
+ ([d], [n; m], [], [Next])
+
+| `AArch64MultiplyAddSubLong (d,n,m,a,_destsize,_datasize,_sub_op,_unsigned) ->
+ ([d], [n; m; a], [], [Next])
+
+| `AArch64MultiplyHigh (d,n,m,a,_destsize,_datasize,_unsigned) ->
+ ([d], [n; m; a], [], [Next])
+
+| `AArch64TestBitAndBranch (t,_datasize,_bit_pos,_bit_val,_offset) ->
+ ([], [t], [], [Next])
+
+| `AArch64MoveSystemRegister (t,_sys_op0,_sys_op1,_sys_op2,_sys_crn,_sys_crm,true) ->
+ ([t], [], [], [Next])
+| `AArch64MoveSystemRegister (t,_sys_op0,_sys_op1,_sys_op2,_sys_crn,_sys_crm,false) ->
+ ([], [t], [], [Next])
+
+| `AArch64MoveSystemImmediate (_operand,_field) ->
+ ([], [], [], [Next])
diff --git a/aarch64_small/gen/sail_trans_out.hgen b/aarch64_small/gen/sail_trans_out.hgen
new file mode 100644
index 00000000..84826c18
--- /dev/null
+++ b/aarch64_small/gen/sail_trans_out.hgen
@@ -0,0 +1,326 @@
+| ("TMStart", [t]) ->
+ `AArch64TMStart (translate_out_regzr Set64 t)
+
+| ("TMCommit", []) -> `AArch64TMCommit
+
+| ("TMAbort", [retry; reason]) ->
+ `AArch64TMAbort ( translate_out_bool retry,
+ translate_out_bits reason)
+
+| ("TMTest", []) -> `AArch64TMTest
+
+| ("ImplementationDefinedStopFetching",[]) ->
+ `AArch64ImplementationDefinedStopFetching
+
+| ("ImplementationDefinedThreadStart",[]) ->
+ `AArch64ImplementationDefinedThreadStart
+
+| ("ImplementationDefinedTestBeginEnd" , [isEnd]) ->
+ `AArch64ImplementationDefinedTestBeginEnd (translate_out_bool isEnd)
+
+| ("AddSubCarry", [d; n; m; datasize; sub_op; setflags]) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64AddSubCarry ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bool sub_op,
+ translate_out_bool setflags)
+
+| "AddSubExtendRegister", [d; n; m; datasize; sub_op; setflags; extend_type; shift] ->
+ let setflags' = translate_out_bool setflags in
+ let datasize' = translate_out_reg_size datasize in
+ let extend_type' = translate_out_extendType extend_type in
+ `AArch64AddSubExtendRegister ((if setflags' then translate_out_regzr datasize' d else translate_out_regsp datasize' d),
+ translate_out_regsp datasize' n,
+ translate_out_regzrbyext datasize' extend_type' m,
+ datasize',
+ translate_out_bool sub_op,
+ setflags',
+ extend_type',
+ translate_out_int shift)
+
+| "AddSubShiftedRegister", [d; n; m; datasize; sub_op; setflags; shift_type; shift_amount] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64AddSubShiftedRegister ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bool sub_op,
+ translate_out_bool setflags,
+ translate_out_shiftType shift_type,
+ translate_out_int shift_amount)
+
+| "AddSubImmediate", [d; n; datasize; sub_op; setflags; imm] ->
+ let setflags' = translate_out_bool setflags in
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64AddSubImmediate ( (if setflags' then translate_out_regzr datasize' d else translate_out_regsp datasize' d),
+ translate_out_regsp datasize' n,
+ datasize',
+ translate_out_bool sub_op,
+ setflags',
+ translate_out_reg_size_bits imm)
+
+| "Address", [d; page; imm] ->
+ `AArch64Address ( translate_out_regzr Set64 d,
+ translate_out_bool page,
+ translate_out_signed_big_bit imm)
+
+| "LogicalImmediate", [d; n; datasize; setflags; op; imm] ->
+ let setflags' = translate_out_bool setflags in
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64LogicalImmediate ((if setflags' then translate_out_regzr datasize' d else translate_out_regsp datasize' d),
+ translate_out_regzr datasize' n,
+ datasize',
+ setflags',
+ translate_out_logicalOp op,
+ translate_out_reg_size_bits imm)
+
+| "LogicalShiftedRegister", [d; n; m; datasize; setflags; op; shift_type; shift_amount; invert] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64LogicalShiftedRegister (translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bool setflags,
+ translate_out_logicalOp op,
+ translate_out_shiftType shift_type,
+ translate_out_int shift_amount,
+ translate_out_bool invert)
+
+| "Shift", [d; n; m; datasize; shift_type] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64Shift ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_shiftType shift_type)
+
+| "BranchConditional", [offset; condition] ->
+ `AArch64BranchConditional ( translate_out_signed_big_bit offset,
+ translate_out_bits condition)
+
+| "BranchImmediate", [branch_type; offset] ->
+ `AArch64BranchImmediate ( translate_out_branchType branch_type,
+ translate_out_signed_big_bit offset)
+
+| "BitfieldMove", [d; n; datasize; inzero; extend; _R; _S; wmask; tmask] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64BitfieldMove (translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ datasize',
+ translate_out_bool inzero,
+ translate_out_bool extend,
+ translate_out_int _R,
+ translate_out_int _S,
+ translate_out_reg_size_bits wmask,
+ translate_out_reg_size_bits wmask)
+
+| "BranchRegister", [n; branch_type] ->
+ `AArch64BranchRegister (translate_out_regzr Set64 n,
+ translate_out_branchType branch_type)
+
+| "CompareAndBranch", [t; datasize; iszero; offset] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64CompareAndBranch (translate_out_regzr datasize' t,
+ datasize',
+ translate_out_bool iszero,
+ translate_out_signed_big_bit offset)
+
+| "ConditionalCompareImmediate", [n; datasize; sub_op; condition; flags; imm] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64ConditionalCompareImmediate ( translate_out_regzr datasize' n,
+ datasize',
+ translate_out_bool sub_op,
+ translate_out_bits condition,
+ translate_out_bits flags,
+ translate_out_reg_size_bits imm)
+
+| "ConditionalCompareRegister", [n; m; datasize; sub_op; condition; flags] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64ConditionalCompareRegister (translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bool sub_op,
+ translate_out_bits condition,
+ translate_out_bits flags)
+
+| "ClearExclusiveMonitor", [imm] -> `AArch64ClearExclusiveMonitor (translate_out_int imm)
+
+| "CountLeading", [d; n; datasize; opcode] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64CountLeading (translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ datasize',
+ translate_out_countOp opcode)
+
+| "CRC", [d; n; m; size; crc32c] ->
+ let size' = translate_out_data_size size in
+ `AArch64CRC ( translate_out_regzr Set32 d,
+ translate_out_regzr Set32 n,
+ translate_out_regzr (if size' = DataSize64 then Set64 else Set32) m,
+ size',
+ translate_out_bool crc32c)
+
+| "ConditionalSelect", [d; n; m; datasize; condition; else_inf; else_inc] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64ConditionalSelect ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bits condition,
+ translate_out_bool else_inf,
+ translate_out_bool else_inc)
+
+| "Barrier", [op; domain; types] ->
+ `AArch64Barrier ( translate_out_memBarrierOp op,
+ translate_out_mBReqDomain domain,
+ translate_out_mBReqTypes types)
+
+| "ExtractRegister", [d; n; m; datasize; lsb] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64ExtractRegister ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_int lsb)
+
+| "Hint", [op] -> `AArch64Hint (translate_out_systemHintOp op)
+
+| "LoadStoreAcqExc", [n; t; t2; s; acctype; excl; pair; memop; elsize; regsize; datasize] ->
+ let regsize' = translate_out_reg_size regsize in
+ `AArch64LoadStoreAcqExc ( translate_out_regsp Set64 n,
+ translate_out_regzr regsize' t,
+ translate_out_regzr regsize' t2,
+ translate_out_regzr Set32 s,
+ translate_out_accType acctype,
+ translate_out_bool excl,
+ translate_out_bool pair,
+ translate_out_memOp memop,
+ translate_out_int elsize,
+ regsize',
+ translate_out_data_size datasize)
+
+| "LoadStorePair",[wback; postindex; n; t; t2; acctype; memop; signed; datasize; offset] ->
+ let signed' = translate_out_bool signed in
+ let regsize = if signed' then Set64 else translate_out_reg_size datasize in
+ `AArch64LoadStorePair ( translate_out_bool wback,
+ translate_out_bool postindex,
+ translate_out_regsp Set64 n,
+ translate_out_regzr regsize t,
+ translate_out_regzr regsize t2,
+ translate_out_accType acctype,
+ translate_out_memOp memop,
+ signed',
+ translate_out_data_size datasize,
+ translate_out_signed_big_bit offset)
+
+| "LoadImmediate",[n; t; acctype; memop; signed; wback; postindex; offset; regsize; datasize] ->
+ let regsize' = translate_out_reg_size regsize in
+ `AArch64LoadImmediate ( translate_out_regsp Set64 n,
+ translate_out_regzr regsize' t,
+ translate_out_accType acctype,
+ translate_out_memOp memop,
+ translate_out_bool signed,
+ translate_out_bool wback,
+ translate_out_bool postindex,
+ translate_out_signed_big_bit offset,
+ translate_out_reg_size regsize,
+ translate_out_data_size datasize)
+
+| "LoadLiteral",[t; memop; signed; size; offset; datasize] ->
+ `AArch64LoadLiteral ( translate_out_regzr (translate_out_reg_size datasize) t,
+ translate_out_memOp memop,
+ translate_out_bool signed,
+ translate_out_int size,
+ translate_out_signed_big_bit offset,
+ translate_out_data_size datasize)
+
+| "LoadRegister",[n; t; m; acctype; memop; signed; wback; postindex; extend_type; shift; regsize; datasize] ->
+ let regsize' = translate_out_reg_size regsize in
+ let extend_type' = translate_out_extendType extend_type in
+ `AArch64LoadRegister (translate_out_regsp Set64 n,
+ translate_out_regzr regsize' t,
+ translate_out_regzrbyext Set64 extend_type' m,
+ translate_out_accType acctype,
+ translate_out_memOp memop,
+ translate_out_bool signed,
+ translate_out_bool wback,
+ translate_out_bool postindex,
+ extend_type',
+ translate_out_int shift,
+ translate_out_reg_size regsize ,
+ translate_out_data_size datasize)
+
+| "MultiplyAddSub", [d; n; m; a; destsize; datasize; sub_op] ->
+ let destsize' = translate_out_reg_size destsize in
+ `AArch64MultiplyAddSub (translate_out_regzr destsize' d,
+ translate_out_regzr destsize' n,
+ translate_out_regzr destsize' m,
+ translate_out_regzr destsize' a,
+ destsize',
+ translate_out_data_size datasize,
+ translate_out_bool sub_op)
+
+| "MoveWide", [d; datasize; imm; pos; opcode] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64MoveWide (translate_out_regzr datasize' d,
+ datasize',
+ translate_out_bits imm,
+ translate_out_int pos,
+ translate_out_moveWideOp opcode)
+
+| "Reverse", [d; n; datasize; op] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64Reverse ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ datasize',
+ translate_out_revOp op)
+
+| "Division", [d; n; m; datasize; unsigned] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64Division (translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bool unsigned)
+
+| "MultiplyAddSubLong", [d; n; m; a; destsize; datasize; sub_op; unsigned] ->
+ `AArch64MultiplyAddSubLong (translate_out_regzr Set64 d,
+ translate_out_regzr Set32 n,
+ translate_out_regzr Set32 m,
+ translate_out_regzr Set64 a,
+ translate_out_reg_size destsize,
+ translate_out_data_size datasize,
+ translate_out_bool sub_op,
+ translate_out_bool unsigned)
+
+| "MultiplyHigh", [d; n; m; a; destsize; datasize; unsigned] ->
+ `AArch64MultiplyHigh (translate_out_regzr Set64 d,
+ translate_out_regzr Set64 n,
+ translate_out_regzr Set64 m,
+ translate_out_regzr Set64 a,
+ translate_out_reg_size destsize,
+ translate_out_data_size datasize,
+ translate_out_bool unsigned)
+
+| "TestBitAndBranch", [t; datasize; bit_pos; bit_val; offset] ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64TestBitAndBranch (translate_out_regzr datasize' t,
+ datasize',
+ translate_out_int bit_pos,
+ translate_out_bool bit_val,
+ translate_out_signed_big_bit offset)
+
+| "MoveSystemRegister", [t; sys_op0; sys_op1; sys_op2; sys_crn; sys_crm; read] ->
+ `AArch64MoveSystemRegister (translate_out_regzr Set64 t,
+ translate_out_int sys_op0,
+ translate_out_int sys_op1,
+ translate_out_int sys_op2,
+ translate_out_int sys_crn,
+ translate_out_int sys_crm,
+ translate_out_bool read)
+
+| "MoveSystemImmediate", [operand; field] ->
+ `AArch64MoveSystemImmediate ( translate_out_int operand,
+ translate_out_pSTATEField field)
diff --git a/aarch64_small/gen/shallow_ast_to_herdtools_ast.hgen b/aarch64_small/gen/shallow_ast_to_herdtools_ast.hgen
new file mode 100644
index 00000000..7362304c
--- /dev/null
+++ b/aarch64_small/gen/shallow_ast_to_herdtools_ast.hgen
@@ -0,0 +1,326 @@
+| TMStart t ->
+ `AArch64TMStart (translate_out_regzr Set64 t)
+
+| TMCommit -> `AArch64TMCommit
+
+| TMAbort (retry, reason) ->
+ `AArch64TMAbort ( translate_out_bool retry,
+ translate_out_bits reason)
+
+| TMTest -> `AArch64TMTest
+
+| ImplementationDefinedStopFetching ->
+ `AArch64ImplementationDefinedStopFetching
+
+| ImplementationDefinedThreadStart ->
+ `AArch64ImplementationDefinedThreadStart
+
+| ImplementationDefinedTestBeginEnd (isEnd) ->
+ `AArch64ImplementationDefinedTestBeginEnd (translate_out_bool isEnd)
+
+| AddSubCarry (d, n, m, datasize, sub_op, setflags) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64AddSubCarry ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bool sub_op,
+ translate_out_bool setflags)
+
+| AddSubExtendRegister (d, n, m, datasize, sub_op, setflags, extend_type, shift) ->
+ let setflags' = translate_out_bool setflags in
+ let datasize' = translate_out_reg_size datasize in
+ let extend_type' = translate_out_extendType extend_type in
+ `AArch64AddSubExtendRegister ((if setflags' then translate_out_regzr datasize' d else translate_out_regsp datasize' d),
+ translate_out_regsp datasize' n,
+ translate_out_regzrbyext datasize' extend_type' m,
+ datasize',
+ translate_out_bool sub_op,
+ setflags',
+ extend_type',
+ translate_out_int shift)
+
+| AddSubShiftedRegister (d, n, m, datasize, sub_op, setflags, shift_type, shift_amount) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64AddSubShiftedRegister ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bool sub_op,
+ translate_out_bool setflags,
+ translate_out_shiftType shift_type,
+ translate_out_int shift_amount)
+
+| AddSubImmediate (d, n, datasize, sub_op, setflags, imm) ->
+ let setflags' = translate_out_bool setflags in
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64AddSubImmediate ( (if setflags' then translate_out_regzr datasize' d else translate_out_regsp datasize' d),
+ translate_out_regsp datasize' n,
+ datasize',
+ translate_out_bool sub_op,
+ setflags',
+ translate_out_reg_size_bits imm)
+
+| Address0 (d, page, imm) ->
+ `AArch64Address ( translate_out_regzr Set64 d,
+ translate_out_bool page,
+ translate_out_signed_big_bit imm)
+
+| LogicalImmediate (d, n, datasize, setflags, op, imm) ->
+ let setflags' = translate_out_bool setflags in
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64LogicalImmediate ((if setflags' then translate_out_regzr datasize' d else translate_out_regsp datasize' d),
+ translate_out_regzr datasize' n,
+ datasize',
+ setflags',
+ translate_out_logicalOp op,
+ translate_out_reg_size_bits imm)
+
+| LogicalShiftedRegister (d, n, m, datasize, setflags, op, shift_type, shift_amount, invert) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64LogicalShiftedRegister (translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bool setflags,
+ translate_out_logicalOp op,
+ translate_out_shiftType shift_type,
+ translate_out_int shift_amount,
+ translate_out_bool invert)
+
+| Shift (d, n, m, datasize, shift_type) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64Shift ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_shiftType shift_type)
+
+| BranchConditional (offset, condition) ->
+ `AArch64BranchConditional ( translate_out_signed_big_bit offset,
+ translate_out_bits condition)
+
+| BranchImmediate (branch_type, offset) ->
+ `AArch64BranchImmediate ( translate_out_branchType branch_type,
+ translate_out_signed_big_bit offset)
+
+| BitfieldMove (d, n, datasize, inzero, extend, _R, _S, wmask, tmask) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64BitfieldMove (translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ datasize',
+ translate_out_bool inzero,
+ translate_out_bool extend,
+ translate_out_int _R,
+ translate_out_int _S,
+ translate_out_reg_size_bits wmask,
+ translate_out_reg_size_bits wmask)
+
+| BranchRegister (n, branch_type) ->
+ `AArch64BranchRegister (translate_out_regzr Set64 n,
+ translate_out_branchType branch_type)
+
+| CompareAndBranch (t, datasize, iszero, offset) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64CompareAndBranch (translate_out_regzr datasize' t,
+ datasize',
+ translate_out_bool iszero,
+ translate_out_signed_big_bit offset)
+
+| ConditionalCompareImmediate (n, datasize, sub_op, condition, flags, imm) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64ConditionalCompareImmediate ( translate_out_regzr datasize' n,
+ datasize',
+ translate_out_bool sub_op,
+ translate_out_bits condition,
+ translate_out_bits flags,
+ translate_out_reg_size_bits imm)
+
+| ConditionalCompareRegister (n, m, datasize, sub_op, condition, flags) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64ConditionalCompareRegister (translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bool sub_op,
+ translate_out_bits condition,
+ translate_out_bits flags)
+
+| ClearExclusiveMonitor (imm) -> `AArch64ClearExclusiveMonitor (translate_out_int imm)
+
+| CountLeading (d, n, datasize, opcode) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64CountLeading (translate_out_regzr datasize' d,
+ translate_out_regzr datasize' d,
+ datasize',
+ translate_out_countOp opcode)
+
+| CRC (d, n, m, size, crc32c) ->
+ let size' = translate_out_data_size size in
+ `AArch64CRC ( translate_out_regzr Set32 d,
+ translate_out_regzr Set32 n,
+ translate_out_regzr (if size' = DataSize64 then Set64 else Set32) m,
+ size',
+ translate_out_bool crc32c)
+
+| ConditionalSelect (d, n, m, datasize, condition, else_inf, else_inc) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64ConditionalSelect ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bits condition,
+ translate_out_bool else_inf,
+ translate_out_bool else_inc)
+
+| Barrier3 (op, domain, types) ->
+ `AArch64Barrier ( translate_out_memBarrierOp op,
+ translate_out_mBReqDomain domain,
+ translate_out_mBReqTypes types)
+
+| ExtractRegister (d, n, m, datasize, lsb) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64ExtractRegister ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_int lsb)
+
+| Hint (op) -> `AArch64Hint (translate_out_systemHintOp op)
+
+| LoadStoreAcqExc (n, t, t2, s, acctype, excl, pair, memop, elsize, regsize, datasize) ->
+ let regsize' = translate_out_reg_size regsize in
+ `AArch64LoadStoreAcqExc ( translate_out_regsp Set64 n,
+ translate_out_regzr regsize' t,
+ translate_out_regzr regsize' t2,
+ translate_out_regzr Set32 s,
+ translate_out_accType acctype,
+ translate_out_bool excl,
+ translate_out_bool pair,
+ translate_out_memOp memop,
+ translate_out_int elsize,
+ regsize',
+ translate_out_data_size datasize)
+
+| LoadStorePair(wback, postindex, n, t, t2, acctype, memop, signed, datasize, offset) ->
+ let signed' = translate_out_bool signed in
+ let regsize = if signed' then Set64 else translate_out_reg_size datasize in
+ `AArch64LoadStorePair ( translate_out_bool wback,
+ translate_out_bool postindex,
+ translate_out_regsp Set64 n,
+ translate_out_regzr regsize t,
+ translate_out_regzr regsize t2,
+ translate_out_accType acctype,
+ translate_out_memOp memop,
+ signed',
+ translate_out_data_size datasize,
+ translate_out_signed_big_bit offset)
+
+| LoadImmediate(n, t, acctype, memop, signed, wback, postindex, offset, regsize, datasize) ->
+ let regsize' = translate_out_reg_size regsize in
+ `AArch64LoadImmediate ( translate_out_regsp Set64 n,
+ translate_out_regzr regsize' t,
+ translate_out_accType acctype,
+ translate_out_memOp memop,
+ translate_out_bool signed,
+ translate_out_bool wback,
+ translate_out_bool postindex,
+ translate_out_signed_big_bit offset,
+ translate_out_reg_size regsize,
+ translate_out_data_size datasize)
+
+| LoadLiteral(t, memop, signed, size, offset, datasize) ->
+ `AArch64LoadLiteral ( translate_out_regzr (translate_out_reg_size datasize) t,
+ translate_out_memOp memop,
+ translate_out_bool signed,
+ translate_out_int size,
+ translate_out_signed_big_bit offset,
+ translate_out_data_size datasize)
+
+| LoadRegister(n, t, m, acctype, memop, signed, wback, postindex, extend_type, shift, regsize, datasize) ->
+ let regsize' = translate_out_reg_size regsize in
+ let extend_type' = translate_out_extendType extend_type in
+ `AArch64LoadRegister (translate_out_regsp Set64 n,
+ translate_out_regzr regsize' t,
+ translate_out_regzrbyext Set64 extend_type' m,
+ translate_out_accType acctype,
+ translate_out_memOp memop,
+ translate_out_bool signed,
+ translate_out_bool wback,
+ translate_out_bool postindex,
+ extend_type',
+ translate_out_int shift,
+ translate_out_reg_size regsize ,
+ translate_out_data_size datasize)
+
+| MultiplyAddSub (d, n, m, a, destsize, datasize, sub_op) ->
+ let destsize' = translate_out_reg_size destsize in
+ `AArch64MultiplyAddSub (translate_out_regzr destsize' d,
+ translate_out_regzr destsize' n,
+ translate_out_regzr destsize' m,
+ translate_out_regzr destsize' a,
+ destsize',
+ translate_out_data_size datasize,
+ translate_out_bool sub_op)
+
+| MoveWide (d, datasize, imm, pos, opcode) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64MoveWide (translate_out_regzr datasize' d,
+ datasize',
+ translate_out_bits imm,
+ translate_out_int pos,
+ translate_out_moveWideOp opcode)
+
+| Reverse (d, n, datasize, op) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64Reverse ( translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ datasize',
+ translate_out_revOp op)
+
+| Division (d, n, m, datasize, unsigned) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64Division (translate_out_regzr datasize' d,
+ translate_out_regzr datasize' n,
+ translate_out_regzr datasize' m,
+ datasize',
+ translate_out_bool unsigned)
+
+| MultiplyAddSubLong (d, n, m, a, destsize, datasize, sub_op, unsigned) ->
+ `AArch64MultiplyAddSubLong (translate_out_regzr Set64 d,
+ translate_out_regzr Set32 n,
+ translate_out_regzr Set32 m,
+ translate_out_regzr Set64 a,
+ translate_out_reg_size destsize,
+ translate_out_data_size datasize,
+ translate_out_bool sub_op,
+ translate_out_bool unsigned)
+
+| MultiplyHigh (d, n, m, a, destsize, datasize, unsigned) ->
+ `AArch64MultiplyHigh (translate_out_regzr Set64 d,
+ translate_out_regzr Set64 n,
+ translate_out_regzr Set64 m,
+ translate_out_regzr Set64 a,
+ translate_out_reg_size destsize,
+ translate_out_data_size datasize,
+ translate_out_bool unsigned)
+
+| TestBitAndBranch (t, datasize, bit_pos, bit_val, offset) ->
+ let datasize' = translate_out_reg_size datasize in
+ `AArch64TestBitAndBranch (translate_out_regzr datasize' t,
+ datasize',
+ translate_out_int bit_pos,
+ translate_out_bool bit_val,
+ translate_out_signed_big_bit offset)
+
+| MoveSystemRegister (t, sys_op0, sys_op1, sys_op2, sys_crn, sys_crm, read) ->
+ `AArch64MoveSystemRegister (translate_out_regzr Set64 t,
+ translate_out_int sys_op0,
+ translate_out_int sys_op1,
+ translate_out_int sys_op2,
+ translate_out_int sys_crn,
+ translate_out_int sys_crm,
+ translate_out_bool read)
+
+| MoveSystemImmediate (operand, field) ->
+ `AArch64MoveSystemImmediate ( translate_out_bits operand,
+ translate_out_pSTATEField field)
diff --git a/aarch64_small/gen/shallow_types_to_herdtools_types.hgen b/aarch64_small/gen/shallow_types_to_herdtools_types.hgen
new file mode 100644
index 00000000..771f52ac
--- /dev/null
+++ b/aarch64_small/gen/shallow_types_to_herdtools_types.hgen
@@ -0,0 +1,154 @@
+let translate_out_big_int_bits x = Sail_values.unsigned x
+
+let translate_out_big_bit = Sail_values.unsigned
+
+let translate_out_signed_big_bit = Sail_values.signed
+
+let translate_out_int inst = (Nat_big_num.to_int inst)
+
+let translate_out_bits bits = Nat_big_num.to_int (Sail_values.unsigned bits)
+
+let translate_out_bool = function
+ | Sail_values.B1 -> true
+ | Sail_values.B0 -> false
+ | Sail_values.BU -> failwith "translate_out_bool Undef"
+
+let translate_out_enum (name,_,bits) =
+ Nat_big_num.to_int (IInt.integer_of_bit_list bits)
+
+let translate_out_reg_size inst =
+ match translate_out_int inst with
+ | 32 -> Set32
+ | 64 -> Set64
+ | _ -> assert false
+
+let translate_out_regzr regsize reg =
+ begin match (regsize, translate_out_int reg) with
+ | (Set32, 31) -> W ZR
+ | (Set32, reg) -> W (Ireg (ireg_of_int reg))
+ | (Set64, 31) -> X ZR
+ | (Set64, reg) -> X (Ireg (ireg_of_int reg))
+ end
+
+let translate_out_regsp regsize reg =
+ begin match (regsize, translate_out_int reg) with
+ | (Set32, 31) -> W SP
+ | (Set32, reg) -> W (Ireg (ireg_of_int reg))
+ | (Set64, 31) -> X SP
+ | (Set64, reg) -> X (Ireg (ireg_of_int reg))
+ end
+
+let translate_out_regzrbyext regsize extend_type reg = begin match extend_type with
+ | ExtendType_UXTX | ExtendType_SXTX -> translate_out_regzr regsize reg
+ | _ -> translate_out_regzr Set32 reg
+ end
+
+let translate_out_reg_size_bits bits =
+ match Nat_big_num.to_int (Sail_values.length bits) with
+ | 32 -> R32Bits (translate_out_bits bits)
+ | 64 -> R64Bits (translate_out_big_bit bits)
+ | _ -> assert false
+
+let translate_out_data_size inst =
+ match (translate_out_int inst) with
+ | 8 -> DataSize8
+ | 16 -> DataSize16
+ | 32 -> DataSize32
+ | 64 -> DataSize64
+ | _ -> assert false
+
+let translate_out_extendType = function
+ | ArmV8_embed_types.ExtendType_UXTB -> ExtendType_UXTB
+ | ArmV8_embed_types.ExtendType_UXTH -> ExtendType_UXTH
+ | ArmV8_embed_types.ExtendType_UXTW -> ExtendType_UXTW
+ | ArmV8_embed_types.ExtendType_UXTX -> ExtendType_UXTX
+ | ArmV8_embed_types.ExtendType_SXTB -> ExtendType_SXTB
+ | ArmV8_embed_types.ExtendType_SXTH -> ExtendType_SXTH
+ | ArmV8_embed_types.ExtendType_SXTW -> ExtendType_SXTW
+ | ArmV8_embed_types.ExtendType_SXTX -> ExtendType_SXTX
+
+let translate_out_shiftType = function
+ | ArmV8_embed_types.ShiftType_LSL -> ShiftType_LSL
+ | ArmV8_embed_types.ShiftType_LSR -> ShiftType_LSR
+ | ArmV8_embed_types.ShiftType_ASR -> ShiftType_ASR
+ | ArmV8_embed_types.ShiftType_ROR -> ShiftType_ROR
+
+let translate_out_logicalOp = function
+ | ArmV8_embed_types.LogicalOp_AND -> LogicalOp_AND
+ | ArmV8_embed_types.LogicalOp_EOR -> LogicalOp_EOR
+ | ArmV8_embed_types.LogicalOp_ORR -> LogicalOp_ORR
+
+let translate_out_branchType = function
+ | ArmV8_embed_types.BranchType_CALL -> BranchType_CALL
+ | ArmV8_embed_types.BranchType_ERET -> BranchType_ERET
+ | ArmV8_embed_types.BranchType_DBGEXIT -> BranchType_DBGEXIT
+ | ArmV8_embed_types.BranchType_RET -> BranchType_RET
+ | ArmV8_embed_types.BranchType_JMP -> BranchType_JMP
+ | ArmV8_embed_types.BranchType_EXCEPTION -> BranchType_EXCEPTION
+ | ArmV8_embed_types.BranchType_UNKNOWN -> BranchType_UNKNOWN
+
+let translate_out_countOp = function
+ | ArmV8_embed_types.CountOp_CLZ -> CountOp_CLZ
+ | ArmV8_embed_types.CountOp_CLS -> CountOp_CLS
+ | ArmV8_embed_types.CountOp_CNT -> CountOp_CNT
+
+let translate_out_memBarrierOp = function
+ | ArmV8_embed_types.MemBarrierOp_DSB -> MemBarrierOp_DSB
+ | ArmV8_embed_types.MemBarrierOp_DMB -> MemBarrierOp_DMB
+ | ArmV8_embed_types.MemBarrierOp_ISB -> MemBarrierOp_ISB
+
+let translate_out_mBReqDomain = function
+ | ArmV8_embed_types.MBReqDomain_Nonshareable -> MBReqDomain_Nonshareable
+ | ArmV8_embed_types.MBReqDomain_InnerShareable -> MBReqDomain_InnerShareable
+ | ArmV8_embed_types.MBReqDomain_OuterShareable -> MBReqDomain_OuterShareable
+ | ArmV8_embed_types.MBReqDomain_FullSystem -> MBReqDomain_FullSystem
+
+let translate_out_mBReqTypes = function
+ | ArmV8_embed_types.MBReqTypes_Reads -> MBReqTypes_Reads
+ | ArmV8_embed_types.MBReqTypes_Writes -> MBReqTypes_Writes
+ | ArmV8_embed_types.MBReqTypes_All -> MBReqTypes_All
+
+let translate_out_systemHintOp = function
+ | ArmV8_embed_types.SystemHintOp_NOP -> SystemHintOp_NOP
+ | ArmV8_embed_types.SystemHintOp_YIELD -> SystemHintOp_YIELD
+ | ArmV8_embed_types.SystemHintOp_WFE -> SystemHintOp_WFE
+ | ArmV8_embed_types.SystemHintOp_WFI -> SystemHintOp_WFI
+ | ArmV8_embed_types.SystemHintOp_SEV -> SystemHintOp_SEV
+ | ArmV8_embed_types.SystemHintOp_SEVL -> SystemHintOp_SEVL
+
+let translate_out_accType = function
+ | ArmV8_embed_types.AccType_NORMAL -> AccType_NORMAL
+ | ArmV8_embed_types.AccType_VEC -> AccType_VEC
+ | ArmV8_embed_types.AccType_STREAM -> AccType_STREAM
+ | ArmV8_embed_types.AccType_VECSTREAM -> AccType_VECSTREAM
+ | ArmV8_embed_types.AccType_ATOMIC -> AccType_ATOMIC
+ | ArmV8_embed_types.AccType_ORDERED -> AccType_ORDERED
+ | ArmV8_embed_types.AccType_UNPRIV -> AccType_UNPRIV
+ | ArmV8_embed_types.AccType_IFETCH -> AccType_IFETCH
+ | ArmV8_embed_types.AccType_PTW -> AccType_PTW
+ | ArmV8_embed_types.AccType_DC -> AccType_DC
+ | ArmV8_embed_types.AccType_IC -> AccType_IC
+ | ArmV8_embed_types.AccType_AT -> AccType_AT
+
+let translate_out_memOp = function
+ | ArmV8_embed_types.MemOp_LOAD -> MemOp_LOAD
+ | ArmV8_embed_types.MemOp_STORE -> MemOp_STORE
+ | ArmV8_embed_types.MemOp_PREFETCH -> MemOp_PREFETCH
+
+
+let translate_out_moveWideOp = function
+ | ArmV8_embed_types.MoveWideOp_N -> MoveWideOp_N
+ | ArmV8_embed_types.MoveWideOp_Z -> MoveWideOp_Z
+ | ArmV8_embed_types.MoveWideOp_K -> MoveWideOp_K
+
+let translate_out_revOp = function
+ | ArmV8_embed_types.RevOp_RBIT -> RevOp_RBIT
+ | ArmV8_embed_types.RevOp_REV16 -> RevOp_REV16
+ | ArmV8_embed_types.RevOp_REV32 -> RevOp_REV32
+ | ArmV8_embed_types.RevOp_REV64 -> RevOp_REV64
+
+let translate_out_pSTATEField = function
+ | ArmV8_embed_types.PSTATEField_DAIFSet -> PSTATEField_DAIFSet
+ | ArmV8_embed_types.PSTATEField_DAIFClr -> PSTATEField_DAIFClr
+ | ArmV8_embed_types.PSTATEField_SP -> PSTATEField_SP
+
diff --git a/aarch64_small/gen/token_types.hgen b/aarch64_small/gen/token_types.hgen
new file mode 100644
index 00000000..411dddf9
--- /dev/null
+++ b/aarch64_small/gen/token_types.hgen
@@ -0,0 +1,85 @@
+(*** instructions ***)
+
+type token_TSTART = {txt : string}
+type token_TCOMMIT = {txt : string}
+type token_TABORT = {txt : string}
+type token_TTEST = {txt : string}
+
+type token_ADCSBC = {txt : string; sub_op : boolean; setflags : boolean}
+type token_ADDSUB = {txt : string; sub_op : boolean; setflags : boolean}
+type token_ADR = {txt : string; page : boolean}
+type token_LOGOP = {txt : string; op : logicalOp; setflags : boolean; invert : boolean}
+type token_SHIFTOP = {txt : string; shift_type : shiftType}
+type token_BCOND = {txt : string; condition : int}
+type token_B = {txt : string; branch_type : branchType}
+type token_BR = {txt : string; branch_type : branchType}
+type token_CBZ = {txt : string; iszero : boolean}
+type token_BFM = {txt : string; inzero : boolean; extend : boolean}
+type token_CCM = {txt : string; sub_op : boolean}
+type token_CM = {txt : string; sub_op : boolean}
+type token_CL = {txt : string; opcode : countOp}
+type token_CRC = {txt : string; size : data_size; crc32c : boolean}
+type token_CRC32X = {txt : string; crc32c : boolean}
+type token_CSEL = {txt : string; else_inv : boolean; else_inc : boolean}
+type token_CSET = {txt : string; else_inv : boolean; else_inc : boolean}
+type token_CSETM = {txt : string; else_inv : boolean; else_inc : boolean}
+type token_CON = {txt : string; else_inv : boolean; else_inc : boolean}
+type token_MEMBARR = {txt : string; op : memBarrierOp}
+type token_LDAXR_var32 = {elsize : int; datasize : data_size}
+type token_LDAXR = {txt : string; acctype : accType; excl : boolean; memop : memOp; var32 : token_LDAXR_var32; var64 : boolean}
+type token_STLXR_var32 = {elsize : int; datasize : data_size}
+type token_STLXR = {txt : string; acctype : accType; var32 : token_STLXR_var32; var64 : boolean}
+type token_LDXP = {txt : string; acctype : accType}
+type token_STXP = {txt : string; acctype : accType}
+type token_LDSTR_var32 = {datasize : data_size}
+type token_LDSTR_var64 = {datasize : data_size}
+type token_LDSTR_lit64 = {datasize : data_size; size : int}
+type token_LDSTR = {txt : string; memop : memOp; signed : boolean; lit32 : boolean; var32 : token_LDSTR_var32 option; var64 : token_LDSTR_var64 option; lit64 : token_LDSTR_lit64 option}
+type token_LDSTTUR_off32 = {datasize : data_size}
+type token_LDSTTUR_off64 = {datasize : data_size}
+type token_LDSTTUR = {txt : string; memop : memOp; acctype : accType; signed : boolean; off32 : token_LDSTTUR_off32 option; off64 : token_LDSTTUR_off64 option}
+type token_MADDSUB = {txt : string; sub_op : boolean}
+type token_MUL = {txt : string; sub_op : boolean}
+type token_MOVWIDE = {txt : string; opcode : moveWideOp}
+type token_NEG = {txt : string; setflags : boolean}
+type token_NGC = {txt : string; setflags : boolean}
+type token_REV = {txt : string; op32 : revOp option; op64 : revOp}
+type token_DIV = {txt : string; unsigned : boolean}
+type token_MADDSUBL = {txt : string; sub_op : boolean; unsigned : boolean}
+type token_MULH = {txt : string; unsigned : boolean}
+type token_MULL = {txt : string; unsigned : boolean}
+type token_LDSTP = {txt : string; memop : memOp}
+type token_TBZ = {txt : string; bit_val : bit}
+type token_BFIZ = {txt : string; extend : boolean}
+type token_BFX = {txt : string; extend : boolean}
+type token_MNEGL = {txt : string; unsigned : boolean}
+type token_BFI = {txt : string}
+type token_BFXIL = {txt : string}
+type token_CLREX = {txt : string}
+type token_EXTR = {txt : string}
+type token_HINT = {txt : string}
+type token_ISB = {txt : string}
+type token_LDPSW = {txt : string}
+type token_MOV = {txt : string}
+type token_MVN = {txt : string}
+type token_NOP = {txt : string}
+type token_PRFM = {txt : string}
+type token_PRFUM = {txt : string}
+type token_RET = {txt : string}
+type token_TST = {txt : string}
+type token_MRS = {txt : string}
+type token_MSR = {txt : string}
+
+(*** instructions/operands ***)
+
+type token_SHIFT = {txt : string; shift_type : shiftType}
+type token_EXTEND_inst = {extend : boolean; imms : int}
+type token_EXTEND = {txt : string; _type : extendType; inst : token_EXTEND_inst option}
+
+(*** operands: ***)
+
+type token_COND = int
+type token_BARROP = {domain : mBReqDomain; types : mBReqTypes}
+type token_PRFOP = inst_reg (* this is an int that is encoded in a reg field *)
+type token_SYSREG = {sys_op0 : uinteger; sys_op1 : uinteger; sys_op2 : uinteger; sys_crn : uinteger; sys_crm : uinteger}
+type token_PSTATEFIELD = pSTATEField
diff --git a/aarch64_small/gen/tokens.hgen b/aarch64_small/gen/tokens.hgen
new file mode 100644
index 00000000..bf49e463
--- /dev/null
+++ b/aarch64_small/gen/tokens.hgen
@@ -0,0 +1,78 @@
+/*** instructions ***/
+
+%token <AArch64HGenBase.token_TSTART> TSTART
+%token <AArch64HGenBase.token_TCOMMIT> TCOMMIT
+%token <AArch64HGenBase.token_TABORT> TABORT
+%token <AArch64HGenBase.token_TTEST> TTEST
+
+%token <AArch64HGenBase.token_ADCSBC> ADCSBC
+%token <AArch64HGenBase.token_ADDSUB> ADDSUB
+%token <AArch64HGenBase.token_ADR> ADR
+%token <AArch64HGenBase.token_LOGOP> LOGOP
+%token <AArch64HGenBase.token_SHIFTOP> SHIFTOP
+%token <AArch64HGenBase.token_BCOND> BCOND
+%token <AArch64HGenBase.token_B> B
+%token <AArch64HGenBase.token_BR> BR
+%token <AArch64HGenBase.token_CBZ> CBZ
+%token <AArch64HGenBase.token_BFM> BFM
+%token <AArch64HGenBase.token_CCM> CCM
+%token <AArch64HGenBase.token_CM> CM
+%token <AArch64HGenBase.token_CL> CL
+%token <AArch64HGenBase.token_CRC> CRC
+%token <AArch64HGenBase.token_CRC32X> CRC32X
+%token <AArch64HGenBase.token_CSEL> CSEL
+%token <AArch64HGenBase.token_CSET> CSET
+%token <AArch64HGenBase.token_CSETM> CSETM
+%token <AArch64HGenBase.token_CON> CON
+%token <AArch64HGenBase.token_MEMBARR> MEMBARR
+%token <AArch64HGenBase.token_LDAXR> LDAXR
+%token <AArch64HGenBase.token_STLXR> STLXR
+%token <AArch64HGenBase.token_LDXP> LDXP
+%token <AArch64HGenBase.token_STXP> STXP
+%token <AArch64HGenBase.token_LDSTR> LDSTR
+%token <AArch64HGenBase.token_LDSTTUR> LDSTTUR
+%token <AArch64HGenBase.token_MADDSUB> MADDSUB
+%token <AArch64HGenBase.token_MUL> MUL
+%token <AArch64HGenBase.token_MOVWIDE> MOVWIDE
+%token <AArch64HGenBase.token_NEG> NEG
+%token <AArch64HGenBase.token_NGC> NGC
+%token <AArch64HGenBase.token_REV> REV
+%token <AArch64HGenBase.token_DIV> DIV
+%token <AArch64HGenBase.token_MADDSUBL> MADDSUBL
+%token <AArch64HGenBase.token_MULH> MULH
+%token <AArch64HGenBase.token_MULL> MULL
+%token <AArch64HGenBase.token_LDSTP> LDSTP
+%token <AArch64HGenBase.token_TBZ> TBZ
+%token <AArch64HGenBase.token_BFIZ> BFIZ
+%token <AArch64HGenBase.token_BFX> BFX
+%token <AArch64HGenBase.token_MNEGL> MNEGL
+%token <AArch64HGenBase.token_BFI> BFI
+%token <AArch64HGenBase.token_BFXIL> BFXIL
+%token <AArch64HGenBase.token_CLREX> CLREX
+%token <AArch64HGenBase.token_EXTR> EXTR
+%token <AArch64HGenBase.token_HINT> HINT
+%token <AArch64HGenBase.token_ISB> ISB
+%token <AArch64HGenBase.token_LDPSW> LDPSW
+%token <AArch64HGenBase.token_MOV> MOV
+%token <AArch64HGenBase.token_MVN> MVN
+%token <AArch64HGenBase.token_NOP> NOP
+%token <AArch64HGenBase.token_PRFM> PRFM
+%token <AArch64HGenBase.token_PRFUM> PRFUM
+%token <AArch64HGenBase.token_RET> RET
+%token <AArch64HGenBase.token_TST> TST
+%token <AArch64HGenBase.token_MRS> MRS
+%token <AArch64HGenBase.token_MSR> MSR
+
+/*** instructions/operands ***/
+
+%token <AArch64HGenBase.token_SHIFT> SHIFT
+%token <AArch64HGenBase.token_EXTEND> EXTEND
+
+/*** operands: ***/
+
+%token <AArch64HGenBase.token_COND> COND
+%token <AArch64HGenBase.token_BARROP> BARROP
+%token <AArch64HGenBase.token_PRFOP> PRFOP
+%token <AArch64HGenBase.token_SYSREG> SYSREG
+%token <AArch64HGenBase.token_PSTATEFIELD> PSTATEFIELD
+
diff --git a/aarch64_small/gen/trans_sail.hgen b/aarch64_small/gen/trans_sail.hgen
new file mode 100644
index 00000000..2b176308
--- /dev/null
+++ b/aarch64_small/gen/trans_sail.hgen
@@ -0,0 +1,379 @@
+| `AArch64TMStart t ->
+ ("TMStart", [translate_reg "t" t], [])
+
+| `AArch64TMCommit -> ("TMCommit", [], [])
+
+| `AArch64TMAbort (retry,reason) ->
+ ("TMAbort",
+ [ translate_boolean "retry" retry;
+ translate_bit5 "reason" reason],
+ [])
+
+| `AArch64TMTest -> ("TMTest", [], [])
+
+
+| `AArch64ImplementationDefinedStopFetching ->
+ ("ImplementationDefinedStopFetching",
+ [],
+ [])
+
+| `AArch64ImplementationDefinedThreadStart ->
+ ("ImplementationDefinedThreadStart",
+ [],
+ [])
+
+| `AArch64ImplementationDefinedTestBeginEnd(isEnd) ->
+ ("ImplementationDefinedTestBeginEnd",
+ [translate_boolean "isEnd" isEnd],
+ [])
+
+| `AArch64AddSubCarry(d,n,m,datasize,sub_op,setflags) ->
+ ("AddSubCarry",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "sub_op" sub_op;
+ translate_boolean "setflags" setflags],
+ [])
+
+| `AArch64AddSubExtendRegister (d,n,m,datasize,sub_op,setflags,extend_type,shift) ->
+ ("AddSubExtendRegister",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "sub_op" sub_op;
+ translate_boolean "setflags" setflags;
+ translate_extendType "extend_type" extend_type;
+ translate_range0_7 "shift" shift],
+ [])
+
+| `AArch64AddSubShiftedRegister (d,n,m,datasize,sub_op,setflags,shift_type,shift_amount) ->
+ ("AddSubShiftedRegister",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "sub_op" sub_op;
+ translate_boolean "setflags" setflags;
+ translate_shiftType "shift_type" shift_type;
+ translate_range0_63 "shift_amount" shift_amount],
+ [])
+
+| `AArch64AddSubImmediate (d,n,datasize,sub_op,setflags,imm) ->
+ ("AddSubImmediate",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "sub_op" sub_op;
+ translate_boolean "setflags" setflags;
+ translate_reg_size_bits "imm" imm],
+ [])
+
+| `AArch64Address (d,page,imm) ->
+ ("Address",
+ [translate_reg "d" d;
+ translate_boolean "page" page;
+ translate_bit64 "imm" imm],
+ [])
+
+| `AArch64LogicalImmediate (d,n,datasize,setflags,op,imm) ->
+ ("LogicalImmediate",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "setflags" setflags;
+ translate_logicalOp "op" op;
+ translate_reg_size_bits "imm" imm],
+ [])
+
+| `AArch64LogicalShiftedRegister (d,n,m,datasize,setflags,op,shift_type,shift_amount,invert) ->
+ ("LogicalShiftedRegister",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "setflags" setflags;
+ translate_logicalOp "op" op;
+ translate_shiftType "shift_type" shift_type;
+ translate_range0_63 "shift_amount" shift_amount;
+ translate_boolean "invert" invert],
+ [])
+
+| `AArch64Shift (d,n,m,datasize,shift_type) ->
+ ("Shift",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg_size "datasize" datasize;
+ translate_shiftType "shift_type" shift_type],
+ [])
+
+| `AArch64BranchConditional (offset,condition) ->
+ ("BranchConditional",
+ [translate_bit64 "offset" offset;
+ translate_bit4 "condition" condition],
+ [])
+
+| `AArch64BranchImmediate (branch_type,offset) ->
+ ("BranchImmediate",
+ [translate_branchType "branch_type" branch_type;
+ translate_bit64 "offset" offset],
+ [])
+
+| `AArch64BitfieldMove (d,n,datasize,inzero,extend,_R,_S,wmask,tmask) ->
+ ("BitfieldMove",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "inzero" inzero;
+ translate_boolean "extend" extend;
+ translate_uinteger "_R" _R;
+ translate_uinteger "_S" _S;
+ translate_reg_size_bits "wmask" wmask;
+ translate_reg_size_bits "tmask" tmask],
+ [])
+
+| `AArch64BranchRegister (n,branch_type) ->
+ ("BranchRegister",
+ [translate_reg "n" n;
+ translate_branchType "branch_type" branch_type],
+ [])
+
+| `AArch64CompareAndBranch (t,datasize,iszero,offset) ->
+ ("CompareAndBranch",
+ [translate_reg "t" t;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "iszero" iszero;
+ translate_bit64 "offset" offset],
+ [])
+
+| `AArch64ConditionalCompareImmediate (n,datasize,sub_op,condition,flags,imm) ->
+ ("ConditionalCompareImmediate",
+ [translate_reg "n" n;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "sub_op" sub_op;
+ translate_bit4 "condition" condition;
+ translate_bit4 "flags" flags;
+ translate_reg_size_bits "imm" imm],
+ [])
+
+| `AArch64ConditionalCompareRegister (n,m,datasize,sub_op,condition,flags) ->
+ ("ConditionalCompareRegister",
+ [translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "sub_op" sub_op;
+ translate_bit4 "condition" condition;
+ translate_bit4 "flags" flags],
+ [])
+
+| `AArch64ClearExclusiveMonitor (imm) ->
+ ("ClearExclusiveMonitor",
+ [translate_uinteger "imm" imm],
+ [])
+
+| `AArch64CountLeading (d,n,datasize,opcode) ->
+ ("CountLeading",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg_size "datasize" datasize;
+ translate_countOp "opcode" opcode],
+ [])
+
+| `AArch64CRC (d,n,m,size,crc32c) ->
+ ("CRC",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_data_size "size" size;
+ translate_boolean "crc32c" crc32c],
+ [])
+
+| `AArch64ConditionalSelect (d,n,m,datasize,condition,else_inv,else_inc) ->
+ ("ConditionalSelect",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg_size "datasize" datasize;
+ translate_bit4 "condition" condition;
+ translate_boolean "else_inv" else_inv;
+ translate_boolean "else_inc" else_inc],
+ [])
+
+| `AArch64Barrier (op,domain,types) ->
+ ("Barrier",
+ [translate_memBarrierOp "op" op;
+ translate_mBReqDomain "domain" domain;
+ translate_mBReqTypes "types" types],
+ [])
+
+| `AArch64ExtractRegister (d,n,m,datasize,lsb) ->
+ ("ExtractRegister",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg_size "datasize" datasize;
+ translate_uinteger "lsb" lsb],
+ [])
+
+| `AArch64Hint (op) ->
+ ("Hint",
+ [translate_systemHintOp "op" op],
+ [])
+
+| `AArch64LoadStoreAcqExc (n,t,t2,s,acctype,excl,pair,memop,elsize,regsize,datasize) ->
+ ("LoadStoreAcqExc",
+ [translate_reg "n" n;
+ translate_reg "t" t;
+ translate_reg "t2" t2;
+ translate_reg "s" s;
+ translate_accType "acctype" acctype;
+ translate_boolean "excl" excl;
+ translate_boolean "pair" pair;
+ translate_memOp "memop" memop;
+ translate_uinteger "elsize" elsize;
+ translate_reg_size "regsize" regsize;
+ translate_data_size "datasize" datasize],
+ [])
+
+| `AArch64LoadStorePair (wback,postindex,n,t,t2,acctype,memop,signed,datasize,offset) ->
+ ("LoadStorePair",
+ [translate_boolean "wback" wback;
+ translate_boolean "postindex" postindex;
+ translate_reg "n" n;
+ translate_reg "t" t;
+ translate_reg "t2" t2;
+ translate_accType "acctype" acctype;
+ translate_memOp "memop" memop;
+ translate_boolean "signed" signed;
+ translate_data_size "datasize" datasize;
+ translate_bit64 "offset" offset],
+ [])
+
+| `AArch64LoadImmediate (n,t,acctype,memop,signed,wback,postindex,offset,regsize,datasize) ->
+ ("LoadImmediate",
+ [translate_reg "n" n;
+ translate_reg "t" t;
+ translate_accType "acctype" acctype;
+ translate_memOp "memop" memop;
+ translate_boolean "signed" signed;
+ translate_boolean "wback" wback;
+ translate_boolean "postindex" postindex;
+ translate_bit64 "offset" offset;
+ translate_reg_size "regsize" regsize;
+ translate_data_size "datasize" datasize],
+ [])
+
+| `AArch64LoadLiteral (t,memop,signed,size,offset,datasize) ->
+ ("LoadLiteral",
+ [translate_reg "t" t;
+ translate_memOp "memop" memop;
+ translate_boolean "signed" signed;
+ translate_uinteger "size" size;
+ translate_bit64 "offset" offset;
+ translate_data_size "datasize" datasize;],
+ [])
+
+| `AArch64LoadRegister (n,t,m,acctype,memop,signed,wback,postindex,extend_type,shift,regsize,datasize) ->
+ ("LoadRegister",
+ [translate_reg "n" n;
+ translate_reg "t" t;
+ translate_reg "m" m;
+ translate_accType "acctype" acctype;
+ translate_memOp "memop" memop;
+ translate_boolean "signed" signed;
+ translate_boolean "wback" wback;
+ translate_boolean "postindex" postindex;
+ translate_extendType "extend_type" extend_type;
+ translate_uinteger "shift" shift;
+ translate_reg_size "regsize" regsize;
+ translate_data_size "datasize" datasize],
+ [])
+
+| `AArch64MultiplyAddSub (d,n,m,a,destsize,datasize,sub_op) ->
+ ("MultiplyAddSub",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg "a" a;
+ translate_reg_size "destsize" destsize;
+ translate_data_size "datasize" datasize;
+ translate_boolean "sub_op" sub_op],
+ [])
+
+| `AArch64MoveWide (d,datasize,imm,pos,opcode) ->
+ ("MoveWide",
+ [translate_reg "d" d;
+ translate_reg_size "datasize" datasize;
+ translate_bit16 "imm" imm;
+ translate_uinteger "pos" pos;
+ translate_moveWideOp "opcode" opcode],
+ [])
+
+| `AArch64Reverse (d,n,datasize,op) ->
+ ("Reverse",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg_size "datasize" datasize;
+ translate_revOp "op" op],
+ [])
+
+| `AArch64Division (d,n,m,datasize,unsigned) ->
+ ("Division",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg_size "datasize" datasize;
+ translate_boolean "unsigned" unsigned],
+ [])
+
+| `AArch64MultiplyAddSubLong (d,n,m,a,destsize,datasize,sub_op,unsigned) ->
+ ("MultiplyAddSubLong",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg "a" a;
+ translate_reg_size "destsize" destsize;
+ translate_data_size "datasize" datasize;
+ translate_boolean "sub_op" sub_op;
+ translate_boolean "unsigned" unsigned],
+ [])
+
+| `AArch64MultiplyHigh (d,n,m,a,destsize,datasize,unsigned) ->
+ ("MultiplyHigh",
+ [translate_reg "d" d;
+ translate_reg "n" n;
+ translate_reg "m" m;
+ translate_reg "a" a;
+ translate_reg_size "destsize" destsize;
+ translate_data_size "datasize" datasize;
+ translate_boolean "unsigned" unsigned],
+ [])
+
+| `AArch64TestBitAndBranch (t,datasize,bit_pos,bit_val,offset) ->
+ ("TestBitAndBranch",
+ [translate_reg "t" t;
+ translate_reg_size "datasize" datasize;
+ translate_uinteger "bit_pos" bit_pos;
+ translate_bit "bit_val" bit_val;
+ translate_bit64 "offset" offset],
+ [])
+
+| `AArch64MoveSystemRegister (t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,read) ->
+ ("MoveSystemRegister",
+ [translate_reg "t" t;
+ translate_uinteger "sys_op0" sys_op0;
+ translate_uinteger "sys_op1" sys_op1;
+ translate_uinteger "sys_op2" sys_op2;
+ translate_uinteger "sys_crn" sys_crn;
+ translate_uinteger "sys_crm" sys_crm;
+ translate_boolean "read" read],
+ [])
+
+| `AArch64MoveSystemImmediate (operand,field) ->
+ ("MoveSystemImmediate",
+ [translate_bit4 "operand" operand;
+ translate_pSTATEField "field" field],
+ [])
diff --git a/aarch64_small/gen/types.hgen b/aarch64_small/gen/types.hgen
new file mode 100644
index 00000000..d581a233
--- /dev/null
+++ b/aarch64_small/gen/types.hgen
@@ -0,0 +1,90 @@
+type reg_size = Set64 | Set32
+
+type reg_size_bits = R32Bits of int | R64Bits of Nat_big_num.num
+let reg_size_bits_R32_of_int value = R32Bits value
+let reg_size_bits_R64_of_int value = R64Bits (Nat_big_num.of_int value)
+let reg_size_bits_R32_of_big_int value = R32Bits (Nat_big_num.to_int value)
+let reg_size_bits_R64_of_big_int value = R64Bits value
+let eq_reg_size_bits = function
+ | (R32Bits lhs, R32Bits rhs) -> lhs = rhs
+ | (R64Bits lhs, R64Bits rhs) -> Nat_big_num.equal lhs rhs
+ | (R32Bits _, R64Bits _) -> false
+ | (R64Bits _, R32Bits _) -> false
+let reg_size_bits_iskbituimm k value =
+ match value with
+ | R32Bits value -> iskbituimm k value
+ | R64Bits value -> big_iskbituimm k value
+let reg_size_bits_shift_right value n =
+ match value with
+ | R32Bits value -> R32Bits (value lsr n)
+ | R64Bits value -> R64Bits (Nat_big_num.shift_right value n)
+let reg_size_bits_to_int value =
+ match value with
+ | R32Bits value -> value
+ | R64Bits value -> Nat_big_num.to_int value
+
+type data_size = DataSize64 | DataSize32 | DataSize16 | DataSize8
+
+type reg_index = int
+
+type boolean = bool
+
+type range0_7 = int
+
+type range0_63 = int
+
+type bit64 = Nat_big_num.num
+let bit64_of_int = Nat_big_num.of_int
+let bit64_to_int = Nat_big_num.to_int
+let eq_bit64 = Nat_big_num.equal
+
+type bit4 = int
+
+type bit5 = int
+
+type bit16 = int
+
+type bit = bool
+
+type range8_64 = int
+
+type uinteger = int
+
+type extendType = ExtendType_SXTB | ExtendType_SXTH | ExtendType_SXTW | ExtendType_SXTX |
+ ExtendType_UXTB | ExtendType_UXTH | ExtendType_UXTW | ExtendType_UXTX
+
+
+type shiftType = ShiftType_LSL | ShiftType_LSR | ShiftType_ASR | ShiftType_ROR
+
+type logicalOp = LogicalOp_AND | LogicalOp_EOR | LogicalOp_ORR
+
+type branchType = BranchType_CALL | BranchType_ERET | BranchType_DBGEXIT |
+ BranchType_RET | BranchType_JMP | BranchType_EXCEPTION |
+ BranchType_UNKNOWN
+
+type countOp = CountOp_CLZ | CountOp_CLS | CountOp_CNT
+
+type memBarrierOp = MemBarrierOp_DSB | MemBarrierOp_DMB | MemBarrierOp_ISB
+
+type mBReqDomain = MBReqDomain_Nonshareable | MBReqDomain_InnerShareable |
+ MBReqDomain_OuterShareable | MBReqDomain_FullSystem
+
+type mBReqTypes = MBReqTypes_Reads | MBReqTypes_Writes | MBReqTypes_All
+
+type systemHintOp = SystemHintOp_NOP | SystemHintOp_YIELD |
+ SystemHintOp_WFE | SystemHintOp_WFI |
+ SystemHintOp_SEV | SystemHintOp_SEVL
+
+type accType = AccType_NORMAL | AccType_VEC | AccType_STREAM |
+ AccType_VECSTREAM | AccType_ATOMIC | AccType_ORDERED |
+ AccType_UNPRIV | AccType_IFETCH | AccType_PTW |
+ AccType_DC | AccType_IC | AccType_AT
+
+type memOp = MemOp_LOAD | MemOp_STORE | MemOp_PREFETCH
+
+type moveWideOp = MoveWideOp_N | MoveWideOp_Z | MoveWideOp_K
+
+type revOp = RevOp_RBIT | RevOp_REV16 | RevOp_REV32 | RevOp_REV64
+
+type pSTATEField = PSTATEField_DAIFSet | PSTATEField_DAIFClr |
+ PSTATEField_SP
diff --git a/aarch64_small/gen/types_sail_trans_out.hgen b/aarch64_small/gen/types_sail_trans_out.hgen
new file mode 100644
index 00000000..082a5464
--- /dev/null
+++ b/aarch64_small/gen/types_sail_trans_out.hgen
@@ -0,0 +1,189 @@
+let translate_out_big_int_bits = function
+ | (name, Range0 _, bits) -> IInt.integer_of_bit_list bits
+ | _ -> assert false
+
+let translate_out_big_bit = function
+ | (name, Bvector _, bits) -> IInt.integer_of_bit_list bits
+ | _ -> assert false
+
+let translate_out_signed_big_bit = function
+ | (name, Bvector _, bits) -> IInt.signed_integer_of_bit_list bits
+ | _ -> assert false
+
+let translate_out_int inst = (Nat_big_num.to_int (translate_out_big_int_bits inst))
+
+let translate_out_bits = function
+ | (name, Bvector _, bits) -> Nat_big_num.to_int (IInt.integer_of_bit_list bits)
+ | _ -> assert false
+
+let translate_out_bool = function
+ | (name, Bit, [Bitc_one]) -> true
+ | (name, Bit, [Bitc_zero]) -> false
+ | _ -> assert false
+
+let translate_out_enum (name,_,bits) =
+ Nat_big_num.to_int (IInt.integer_of_bit_list bits)
+
+let translate_out_reg_size inst =
+ match translate_out_int inst with
+ | 32 -> Set32
+ | 64 -> Set64
+ | _ -> assert false
+
+let translate_out_regzr regsize reg =
+ begin match (regsize, translate_out_int reg) with
+ | (Set32, 31) -> W ZR
+ | (Set32, reg) -> W (Ireg (ireg_of_int reg))
+ | (Set64, 31) -> X ZR
+ | (Set64, reg) -> X (Ireg (ireg_of_int reg))
+ end
+
+let translate_out_regsp regsize reg =
+ begin match (regsize, translate_out_int reg) with
+ | (Set32, 31) -> W SP
+ | (Set32, reg) -> W (Ireg (ireg_of_int reg))
+ | (Set64, 31) -> X SP
+ | (Set64, reg) -> X (Ireg (ireg_of_int reg))
+ end
+
+let translate_out_regzrbyext regsize extend_type reg =
+ begin match extend_type with
+ | ExtendType_UXTX | ExtendType_SXTX -> translate_out_regzr regsize reg
+ | _ -> translate_out_regzr Set32 reg
+ end
+
+let translate_out_reg_size_bits ((name,_,bits) as inst) =
+ match List.length bits with
+ | 32 -> R32Bits (translate_out_bits inst)
+ | 64 -> R64Bits (translate_out_big_bit inst)
+ | _ -> assert false
+
+let translate_out_data_size inst =
+ match (translate_out_int inst) with
+ | 8 -> DataSize8
+ | 16 -> DataSize16
+ | 32 -> DataSize32
+ | 64 -> DataSize64
+ | _ -> assert false
+
+let translate_out_extendType inst =
+ match translate_out_enum inst with
+ | 0 -> ExtendType_SXTB
+ | 1 -> ExtendType_SXTH
+ | 2 -> ExtendType_SXTW
+ | 3 -> ExtendType_SXTX
+ | 4 -> ExtendType_UXTB
+ | 5 -> ExtendType_UXTH
+ | 6 -> ExtendType_UXTW
+ | 7 -> ExtendType_UXTX
+ | _ -> assert false
+
+let translate_out_shiftType inst =
+ match translate_out_enum inst with
+ | 0 -> ShiftType_LSL
+ | 1 -> ShiftType_LSR
+ | 2 -> ShiftType_ASR
+ | 3 -> ShiftType_ROR
+ | _ -> assert false
+
+let translate_out_logicalOp inst =
+ match translate_out_enum inst with
+ | 0 -> LogicalOp_AND
+ | 1 -> LogicalOp_EOR
+ | 2 -> LogicalOp_ORR
+ | _ -> assert false
+
+let translate_out_branchType inst =
+ match translate_out_enum inst with
+ | 0 -> BranchType_CALL
+ | 1 -> BranchType_ERET
+ | 2 -> BranchType_DBGEXIT
+ | 3 -> BranchType_RET
+ | 4 -> BranchType_JMP
+ | 5 -> BranchType_EXCEPTION
+ | 6 -> BranchType_UNKNOWN
+ | _ -> assert false
+
+let translate_out_countOp inst =
+ match translate_out_enum inst with
+ | 0 -> CountOp_CLZ
+ | 1 -> CountOp_CLS
+ | 2 -> CountOp_CNT
+ | _ -> assert false
+
+let translate_out_memBarrierOp inst =
+ match translate_out_enum inst with
+ | 0 -> MemBarrierOp_DSB
+ | 1 -> MemBarrierOp_DMB
+ | 2 -> MemBarrierOp_ISB
+ | _ -> assert false
+
+let translate_out_mBReqDomain inst =
+ match translate_out_enum inst with
+ | 0 -> MBReqDomain_Nonshareable
+ | 1 -> MBReqDomain_InnerShareable
+ | 2 -> MBReqDomain_OuterShareable
+ | 3 -> MBReqDomain_FullSystem
+ | _ -> assert false
+
+let translate_out_mBReqTypes inst =
+ match translate_out_enum inst with
+ | 0 -> MBReqTypes_Reads
+ | 1 -> MBReqTypes_Writes
+ | 2 -> MBReqTypes_All
+ | _ -> assert false
+
+let translate_out_systemHintOp inst =
+ match translate_out_enum inst with
+ | 0 -> SystemHintOp_NOP
+ | 1 -> SystemHintOp_YIELD
+ | 2 -> SystemHintOp_WFE
+ | 3 -> SystemHintOp_WFI
+ | 4 -> SystemHintOp_SEV
+ | 5 -> SystemHintOp_SEVL
+ | _ -> assert false
+
+let translate_out_accType inst =
+ match translate_out_enum inst with
+ | 0 -> AccType_NORMAL
+ | 1 -> AccType_VEC
+ | 2 -> AccType_STREAM
+ | 3 -> AccType_VECSTREAM
+ | 4 -> AccType_ATOMIC
+ | 5 -> AccType_ORDERED
+ | 6 -> AccType_UNPRIV
+ | 7 -> AccType_IFETCH
+ | 8 -> AccType_PTW
+ | 9 -> AccType_DC
+ | 10 -> AccType_IC
+ | 11 -> AccType_AT
+ | _ -> assert false
+
+let translate_out_memOp inst =
+ match translate_out_enum inst with
+ | 0 -> MemOp_LOAD
+ | 1 -> MemOp_STORE
+ | 2 -> MemOp_PREFETCH
+ | _ -> assert false
+
+let translate_out_moveWideOp inst =
+ match translate_out_enum inst with
+ | 0 -> MoveWideOp_N
+ | 1 -> MoveWideOp_Z
+ | 2 -> MoveWideOp_K
+ | _ -> assert false
+
+let translate_out_revOp inst =
+ match translate_out_enum inst with
+ | 0 -> RevOp_RBIT
+ | 1 -> RevOp_REV16
+ | 2 -> RevOp_REV32
+ | 3 -> RevOp_REV64
+ | _ -> assert false
+
+let translate_out_pSTATEField inst =
+ match translate_out_enum inst with
+ | 0 -> PSTATEField_DAIFSet
+ | 1 -> PSTATEField_DAIFClr
+ | 2 -> PSTATEField_SP
+ | _ -> assert false
diff --git a/aarch64_small/gen/types_trans_sail.hgen b/aarch64_small/gen/types_trans_sail.hgen
new file mode 100644
index 00000000..7f2d5fe7
--- /dev/null
+++ b/aarch64_small/gen/types_trans_sail.hgen
@@ -0,0 +1,119 @@
+let translate_big_int bits (name : string) value =
+ (name, Range0 (Some bits), IInt.bit_list_of_integer bits value)
+
+let translate_big_bit bits (name:string) value =
+ (name, Bvector (Some bits), IInt.bit_list_of_integer bits value)
+
+let translate_int bits name value =
+ translate_big_int bits name (Nat_big_num.of_int value)
+
+let translate_bits bits (name:string) value =
+ (name, Bvector (Some bits), IInt.bit_list_of_integer bits (Nat_big_num.of_int value))
+
+let translate_bool name value =
+ (name, Bit, [if value then Bitc_one else Bitc_zero])
+
+let translate_enum enum_values (name: string) value =
+ let rec bit_count n =
+ if n = 0 then 0
+ else 1 + (bit_count (n lsr 1)) in
+ let rec find_index element = function
+ | h::tail -> if h = element then 0 else 1 + (find_index element tail)
+ | _ -> failwith "translate_enum could not find value"
+ in
+ let size = bit_count (List.length enum_values) in
+ let index = find_index value enum_values in
+ (name, Range0 (Some size), IInt.bit_list_of_integer size (Nat_big_num.of_int index))
+
+(* the following are tightly coupled with types.hgen. As it is not relevant
+ to herdtools I put it here and not in types.hgen *)
+
+let translate_reg_size name value =
+ match value with
+ | Set32 -> (name, Range0 (Some 7), IInt.bit_list_of_integer 7 (Nat_big_num.of_int 32))
+ | Set64 -> (name, Range0 (Some 7), IInt.bit_list_of_integer 7 (Nat_big_num.of_int 64))
+
+let translate_reg name value =
+ (name, Range0 (Some 5), bit_list_of_integer 5 (Nat_big_num.of_int (inst_reg_to_int value)))
+
+let translate_reg_size_bits name value =
+ match value with
+ | R32Bits value -> translate_bits 32 name value
+ | R64Bits value -> translate_big_bit 64 name value
+
+let translate_data_size name value =
+ match value with
+ | DataSize8 -> (name, Range0 (Some 7), IInt.bit_list_of_integer 7 (Nat_big_num.of_int 8))
+ | DataSize16 -> (name, Range0 (Some 7), IInt.bit_list_of_integer 7 (Nat_big_num.of_int 16))
+ | DataSize32 -> (name, Range0 (Some 7), IInt.bit_list_of_integer 7 (Nat_big_num.of_int 32))
+ | DataSize64 -> (name, Range0 (Some 7), IInt.bit_list_of_integer 7 (Nat_big_num.of_int 64))
+
+let translate_reg_index = translate_int 5
+
+let translate_boolean = translate_bool
+
+let translate_range0_7 = translate_int 3
+
+let translate_range0_63 = translate_int 6
+
+let translate_bit64 = translate_big_bit 64
+
+let translate_bit4 = translate_bits 4
+let translate_bit5 = translate_bits 5
+let translate_bit16 = translate_bits 16
+
+let translate_bit = translate_bool
+
+let translate_range8_64 = translate_int 7
+
+let translate_uinteger = translate_int 63
+
+let translate_extendType =
+ translate_enum [ExtendType_SXTB; ExtendType_SXTH; ExtendType_SXTW; ExtendType_SXTX;
+ ExtendType_UXTB; ExtendType_UXTH; ExtendType_UXTW; ExtendType_UXTX]
+
+let translate_shiftType =
+ translate_enum [ShiftType_LSL; ShiftType_LSR; ShiftType_ASR; ShiftType_ROR]
+
+let translate_logicalOp =
+ translate_enum [LogicalOp_AND; LogicalOp_EOR; LogicalOp_ORR]
+
+let translate_branchType =
+ translate_enum [BranchType_CALL; BranchType_ERET; BranchType_DBGEXIT;
+ BranchType_RET; BranchType_JMP; BranchType_EXCEPTION;
+ BranchType_UNKNOWN]
+
+let translate_countOp =
+ translate_enum [CountOp_CLZ;CountOp_CLS;CountOp_CNT]
+
+let translate_memBarrierOp=
+ translate_enum [MemBarrierOp_DSB; MemBarrierOp_DMB; MemBarrierOp_ISB]
+
+let translate_mBReqDomain =
+ translate_enum [MBReqDomain_Nonshareable; MBReqDomain_InnerShareable;
+ MBReqDomain_OuterShareable; MBReqDomain_FullSystem]
+
+let translate_mBReqTypes =
+ translate_enum [MBReqTypes_Reads; MBReqTypes_Writes; MBReqTypes_All]
+
+let translate_systemHintOp =
+ translate_enum [SystemHintOp_NOP; SystemHintOp_YIELD; SystemHintOp_WFE;
+ SystemHintOp_WFI; SystemHintOp_SEV; SystemHintOp_SEVL]
+
+let translate_accType =
+ translate_enum [AccType_NORMAL; AccType_VEC; AccType_STREAM;
+ AccType_VECSTREAM; AccType_ATOMIC; AccType_ORDERED;
+ AccType_UNPRIV; AccType_IFETCH; AccType_PTW;
+ AccType_DC; AccType_IC; AccType_AT]
+
+let translate_memOp =
+ translate_enum [MemOp_LOAD; MemOp_STORE; MemOp_PREFETCH]
+
+let translate_moveWideOp =
+ translate_enum [MoveWideOp_N; MoveWideOp_Z; MoveWideOp_K]
+
+let translate_revOp =
+ translate_enum [RevOp_RBIT; RevOp_REV16; RevOp_REV32; RevOp_REV64]
+
+let translate_pSTATEField =
+ translate_enum [PSTATEField_DAIFSet; PSTATEField_DAIFClr; PSTATEField_SP]
diff --git a/aarch64_small/prelude.sail b/aarch64_small/prelude.sail
new file mode 100644
index 00000000..75fdc129
--- /dev/null
+++ b/aarch64_small/prelude.sail
@@ -0,0 +1,36 @@
+default Order dec
+
+union option ('a : Type) = {None : unit, Some : 'a}
+
+type bits ('n : Int) = vector('n, dec, bit)
+
+infix 7 >>
+infix 7 <<
+
+val operator >> = "shift_bits_right" : forall 'n 'm. (bits('n), bits('m)) -> bits('n)
+val operator << = "shift_bits_left" : forall 'n 'm. (bits('n), bits('m)) -> bits('n)
+
+
+infix 7 ^^
+
+val replicate_bits = "replicate_bits" : forall 'n 'm. (bits('n), atom('m)) -> bits('n * 'm)
+val operator ^^ = "replicate_bits" : forall 'n 'm. (bits('n), atom('m)) -> bits('n * 'm)
+
+
+infix 4 <_s
+infix 4 >=_s
+infix 4 <_u
+infix 4 >=_u
+infix 4 <=_u
+
+val operator <_s : forall 'n, 'n > 0. (bits('n), bits('n)) -> bool
+val operator >=_s : forall 'n, 'n > 0. (bits('n), bits('n)) -> bool
+val operator <_u : forall 'n. (bits('n), bits('n)) -> bool
+val operator >=_u : forall 'n. (bits('n), bits('n)) -> bool
+val operator <=_u : forall 'n. (bits('n), bits('n)) -> bool
+
+function operator <_s (x, y) = signed(x) < signed(y)
+function operator >=_s (x, y) = signed(x) >= signed(y)
+function operator <_u (x, y) = unsigned(x) < unsigned(y)
+function operator >=_u (x, y) = unsigned(x) >= unsigned(y)
+function operator <=_u (x, y) = unsigned(x) <= unsigned(y) \ No newline at end of file